我已经编写了一个 Python 程序来使用以下命令重新启动在 Ubuntu 18.04 上运行的服务器:os.system("shutdown -r -t 1")
。
当加载服务时,程序操作系统不会重新启动,但程序在独立运行时可以正常工作。
服务日志显示:
Nov 18 12:51:51 jetson-desktop python3[13004]: Failed to set wall message, ignoring: Interactive authentication required.
Nov 18 12:51:51 jetson-desktop python3[13004]: Failed to call ScheduleShutdown in logind, proceeding with immediate shutdown: Interactive authentication required.
Nov 18 12:52:44 jetson-desktop python3[13004]: Failed to set wall message, ignoring: Interactive authentication required.
Nov 18 12:52:44 jetson-desktop python3[13004]: Failed to call ScheduleShutdown in logind, proceeding with immediate shutdown: Interactive authentication required.
出什么问题了?
答案1
该shutdown
命令需要提升的权限。
想象一下,在 Linux 系统这样的多用户环境中,每个登录的用户都可以关闭或重新启动机器 - 这将是致命的。
所以,基本上你需要获得提升的权限。
这个问题已经回答过很多次了。这里有一个很好的帖子:
https://stackoverflow.com/questions/25215604/use-sudo-without-password-inside-a-script