Я пишу клиент-серверное приложение 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")
У меня есть 2 виртуальные машины, выступающие в качестве получателей, одна в Windows, а другая в Linux.
Когда я отправляю сообщение о перезагрузке на приемник Windows, аппарат перезагружается.
Когда я отправляю сообщение перезапуска на приемник Linux , запрашивает пароль
Incoming:EXEC_OP_RESTART
[sudo] password for jwalker:
Что мне нужно изменить, чтобы преодолеть это?
shutdown -r now
единственный путь, или я могу сделать это по-другому (более прямо)?
EDIT:
В этом вопросе использовалось то, что называется dbus
, и это было сделано без пароля, я ищу dbus, как альтернативу.