我正在尝试用我的Python代码切换用户。但是,当我尝试退出时,得到以下信息并按ctrl-z关闭程序:
someuser:〜$退出
退出
密码:
[4] +已停止python3 loginTest.py
我的代码如下:
import subprocess
import getpass
userNameInput = input("\n" + "Please enter your username." + "\n")
login = subprocess.run(['su', '-p', userNameInput], stdin=True)
stdin = subprocess.Popen([getpass.getpass() + "\n"])
为什么再次要求我输入密码?是因为subprocess.run()正在等待程序退出吗?
答案 0 :(得分:0)
您可能想使用Ctrl + C代替该进程。
Ctrl + Z会将进程置于后台,并且仅当您表示 bg一个进程时,才应使用它。如果您定期在CLI上执行此操作,并且不重新启动计算机,则可能会因僵尸进程而陷入困境。如果您使用Ctrl + Z来“杀死”一个进程,则会得到意外的行为。
要求Ubuntu在Ctrl + C和Ctrl + Z之间的the difference上有一个不错的答案。