Я пишу клиент-серверное приложение pyQt, которое перезапускает / выключает ПК удаленно .
получатели прослушивают сеть на предмет входящих сообщений, а отправитель отправляет сообщение перезапуска / выключения выбранному получателю.
На приемнике выполняется следующая часть кода:
import os
self.currentOS = calling a function to determine the current OS
if self.currentOS == "Win":
os.system("shutdown -r -f -t 1")
elif self.currentOS == "Lin":
os.system("shutdown -r now")
У меня есть две виртуальные машины, действующие как приемники, одна в Windows, а другая в Linux.
Когда я отправляю сообщение о перезагрузке в приемник Windows, машина перезагружается.
Когда я отправляю сообщение о перезапуске на приемник Linux , запрашивает пароль
Incoming:EXEC_OP_RESTART
[sudo] password for jwalker:
Что мне нужно изменить, чтобы решить эту проблему?
{{ 1}} Является ли shutdown -r now
единственным способом, или я могу сделать это другим способом (более прямым)?
РЕДАКТИРОВАТЬ:
В этом вопросе использовалось что-то под названием dbus
, и это было сделано без пароля, я ищу альтернативу dbus.