当我向 Linux 机器发送重新启动命令(或关闭)命令时,它是否会将这些消息保留在某处并且我可以查询它。即我将发送一个重新启动命令,然后我将运行另一个命令来检查我的计算机是否处于重新启动(或关闭)模式(因为它不会立即重新启动,需要一些时间才能重新启动,我会检查它)?
编辑
服务器将其中一个命令发送到客户端(我的服务器和客户端在 Java 中编码)如果我在发送 ie shutdown 命令后进行 ping 操作,也许机器会关闭但仍然处于活动状态(它可能会在 2 秒后关闭。)如果我可以查询我的客户端是否收到了关闭(或重新启动)命令,即使它仍然存在,我会接受,好的,它将关闭(或重新启动)如果我无法得到对客户端的查询的答案,则意味着它不存在,所以我将接受它已关闭(或重新启动)。我怎样才能像这样查询我的机器?
答案1
在重新启动期间,运行级别设置为 6(0 表示关闭,1 表示维护模式,2-5 表示正常运行)。
if [ "$(runlevel | sed 's/.* //')" = 6 ]; then
echo "A reboot is in progress"
fi
这不太可能有用,因为在启动重新启动后,只有一个非常小的窗口(通常小于一秒),在此期间机器仍在接受命令。
如果您在计算机重新启动后需要通知,请在启动您需要的所有服务后,让它在启动过程中发送一条消息(通过 ssh、电子邮件、SNMP 或任何方便的方式)。