我正在尝试用我的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()正在等待程序退出?
您可能想使用Ctrl + C代替该进程。
Ctrl + Z会将进程置于后台,并且仅在mean至bg进程时才应使用它。如果您定期在CLI上执行此操作,并且不重新启动计算机,则可能会因僵尸进程而陷入困境。如果使用Ctrl + Z来“杀死”一个进程,则会出现意外行为。
问Ubuntu在Ctrl + C和Ctrl + Z之间的the difference上有不错的答案。