Смена пользователя снова запрашивает пароль при выходе - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь переключать пользователей с помощью своего кода Python.Однако, когда я пытаюсь выйти, я получаю следующее и нажимаю ctrl-z, чтобы закрыть программу:

someuser: ~ $ exit
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 () ожидает выхода из программы?

1 Ответ

0 голосов
/ 27 сентября 2019

Ctrl + C против Ctrl + Z

Вы, вероятно, хотите вместо этого использовать Ctrl + C, чтобы завершить процесс.

Ctrl + Z переведет процесс в фоновый режим, и вам следуетиспользуйте его, только если вы имеете в виду до bg процесса.Если вы делаете это регулярно в CLI и не перезагружаете свою машину, вы можете перегружать свою систему зомби-процессами.Если вы используете Ctrl + Z, чтобы «убить» процесс, вы получите неожиданное поведение.

Разница

Спросите, Ubuntu имеет достойный ответ на разницу между Ctrl+ C и Ctrl + Z.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...