О выполняют “программу sudo python3” в человечности 1604

У меня есть программа Python, должен получить информацию от smartctl, это означает, что программа выполняется как заголовок. Но интерфейс QT похож на изменение в собственном интерфейсе How, я решаю эту проблему?

Спасибо, Stephen

2
задан 6 March 2019 в 04:39

1 ответ

Если Вы используете smartctl с subprocess.Popen() и ничему иному не нужно sudo полномочие кроме subprocess.Popen() можно просто добавить sudo к той части. Например,

subprocess.Popen(['sudo','smartctl','-i','/dev/sda'])

Так как Вы упоминаете QT в своем вопросе, Вы, вероятно, хотите сохранить пароль пользователя через диалоговое окно и передать пароль для подобрабатывания через stdin. Например,

proc = subprocess.Popen(['sudo','-S','smartctl','-i','/dev/sda',stdin=subprocess.PIPE])
smartctl_output  = proc.communicate(input=user_password_variable)

В зависимости от Вашей цели Вы также могли бы рассмотреть добавление Вашего имени пользователя к disk группа так, чтобы Вы не должны были должны быть использовать sudo с smartctl вообще

3
ответ дан 2 December 2019 в 02:40

Другие вопросы по тегам:

Похожие вопросы: