在哪里可以找到有关是否计划重启以及何时、为何和由谁重启的信息?
我在我的终端上得到了这个:
Broadcast message from root@my-server (Tue 2017-11-07 09:00:00 CET):
The system is going down for reboot at Wed 2017-11-08 02:00:00 CET!
因此,几个小时后系统将重新启动,这很好。但是工作一段时间后,如果消息滚动到不可见状态或终端关闭,则会出现以下情况:
我如何才能掌握重启时间?
如果我再次登录服务器,我只会收到以下消息:
*** System restart required ***
没有关于即将重启的信息。我尝试查看是否有任何关机进程正在运行,但找不到。
我知道我可以通过发出这样的命令来生成类似的消息:
sudo shutdown -r 02:00
那么,如何找到有关即将重启的信息?
答案1
在 Ubuntu 18.04 上,机器关机由 管理systemd
。在我的计算机上,我已通过无人值守升级启用自动重启:
$ grep Automatic-Reboot /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
预定的自动重启时间存储在 中/run/systemd/shutdown/scheduled
。
$ cat /run/systemd/shutdown/scheduled
USEC=1563976800000000
WARN_WALL=1
MODE=reboot
您可以使用以下命令将其转换为人类可读的时间:
$ date -d "@$( awk -F '=' '/USEC/{ $2=substr($2,1,10); print $2 }' /run/systemd/shutdown/scheduled )"
Thu Jul 25 02:00:00 NZST 2019
答案2
一开始sudo shutdown -r 02:00
它不是一个文件/设置/系统变量/crontab 条目。这shutdown
是一个进程,如果它仍处于待处理状态,您应该会看到它。
$ ps -ef | grep shutdown
root 3155 2941 0 12:04 pts/4 00:00:00 sudo shutdown -r 02:00
root 3156 3155 0 12:04 pts/4 00:00:00 shutdown -r 02:00
esa 3158 2937 0 12:04 pts/3 00:00:00 grep shutdown
如果使用外部命令sudo shutdown -c
或按 取消^C
,pts/4
则该过程将显示一条消息Shutdown cancelled.
并退出。因此,如果它不存在:
- 有人在收到消息后取消了关机。
- 消息生成时显示
shutdown -k
(并不真正关闭;仅向所有人发送警告消息。在某些版本中,这还会阻止新登录。) - 您正在
ps
使用一个看不到其他用户进程的用户帐户运行。
答案3
在我的 Ubuntu 机器上,登录时显示“需要重启”消息来自 的文件/var/run/reboot-required
。此文件在更新/重启过程中被删除。
Unattended-Upgrade::Automatic-Reboot-Time
重启时间在文件中设置/etc/apt/apt.conf.d/50unattended-upgrades
。
正如 Esa 所述,广播消息很可能是由其他正在执行的程序生成的shutdown -k
,该程序只会打印消息并退出。我也观察了广播消息,但之后sudo ps faux
没有显示shutdown
正在运行的进程。
值得注意的是,即使没有shutdown
进程继续运行,某些东西似乎确实会跟踪最初安排的关机时间。即使我更改了重启时间的值,后续广播消息仍会显示最初配置的时间。