Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 切换用户在退出时再次请求密码_Python_Subprocess - Fatal编程技术网

Python 切换用户在退出时再次请求密码

Python 切换用户在退出时再次请求密码,python,subprocess,Python,Subprocess,我正试图用我的Python代码切换用户。但是,当我尝试退出时,会出现以下情况并按ctrl-z关闭程序: someuser:~$exit 退出 密码: [4] +停止python3 loginTest.py 我的代码如下: import subprocess import getpass userNameInput = input("\n" + "Please enter your username." + "\n") login = subprocess.run(['su', '-p', u

我正试图用我的Python代码切换用户。但是,当我尝试退出时,会出现以下情况并按ctrl-z关闭程序:

someuser:~$exit
退出
密码:
[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 vs Ctrl+Z 您可能希望使用Ctrl+C来终止进程

Ctrl+Z将把进程放在后台,只有当您想创建一个进程时才应该使用它。如果您经常在CLI上执行此操作,并且不重新启动计算机,则系统可能会因僵尸进程而陷入困境。如果您使用Ctrl+Z来“终止”进程,您将获得意外的行为

区别
Ask Ubuntu在Ctrl+C和Ctrl+Z之间有一个不错的答案。

您给出的程序不会产生输出given@IainShelvington,如果有关系的话,我正在Windows系统Linux上运行Ubuntu18.04。我修正了变量。我在为这篇文章删减代码的过程中把他们搞砸了。这无关紧要,也不能回答问题。