我正在尝试使用我的Python代码切换用户。但是,当我尝试退出时,我得到以下内容并按ctrl-z关闭程序:
某用户:~$ 退出 退出
密码:
[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((正在等待程序退出吗?
C vs Ctrl+Z
您可能希望改用 Ctrl+C 来终止该进程。
Ctrl+Z 会将进程置于后台,只有当您打算对进程进行 bg 时,才应使用它。如果您在 CLI 上定期执行此操作并且不重新启动计算机,则可能会因僵尸进程而使系统陷入困境。如果使用 Ctrl+Z "终止"进程,则会出现意外行为。
区别
Ask Ubuntu 对 Ctrl+C 和 Ctrl+Z 之间的区别有一个不错的答案。