切换用户退出时再次要求输入密码

问题描述 投票:0回答:1

我正在尝试用我的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()正在等待程序退出?

python subprocess
1个回答
0
投票

Ctrl + C vs Ctrl + Z

您可能想使用Ctrl + C代替该进程。

Ctrl + Z会将进程置于后台,并且仅在meanbg进程时才应使用它。如果您定期在CLI上执行此操作,并且不重新启动计算机,则可能会因僵尸进程而陷入困境。如果使用Ctrl + Z来“杀死”一个进程,则会出现意外行为。

差异

问Ubuntu在Ctrl + C和Ctrl + Z之间的the difference上有不错的答案。

© www.soinside.com 2019 - 2024. All rights reserved.