Почему эта команда отключения одного терминала не работает

Он отлично работает с терминалом, но при вызове из потока в python он терпит неудачу.

history -d $((HISTCMD-1)) && echo 'password' | sudo -S shutdown -h 08:00

из python, вот что я сделал:

halt = "history -d $((HISTCMD-1)) && echo 'password' | sudo -S shutdown -h 08:00"
thread.start_new_thread(lambda: commands.getoutput(halt),())

I использовал lambda после того, как попробовал его для других команд, таких как открытие nautilus или gedit, что прекрасно работает, но команда shutdown не работает!

1
задан 3 October 2013 в 02:13

1 ответ

От человека sudo:

Опция -S (stdin) заставляет sudo считывать пароль со стандартного ввода вместо терминального устройства. За паролем должен следовать символ новой строки.

Итак, после -S, он ждет символа NEWLINE, который вы предоставили при использовании терминала.

-1
ответ дан 24 May 2018 в 17:21
  • 1
    Как сказал OP, эта команда отлично работает с терминалом, и действительно, echo без аргумента -n выводит конечную новую строку. – Radu Rădeanu 3 October 2013 в 02:53

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

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