检测挂起的linux关闭

时间:2011-02-19 12:31:52

标签: linux shutdown system-shutdown

由于我尽快为我的Ubuntu服务器安装挂起的更新,我必须经常重启我的linux服务器。我正在该服务器上运行webapp,并且想要警告我的用户有关挂起的重启。现在,我手动执行此操作,在重新启动之前添加通知,给他们一些时间来完成工作,重新启动并删除公告。

我希望,shutdown -r +60写一个文件,其中包含有关重启的所有信息,我可以检查每次访问。有这样的文件吗?由于性能原因,更喜欢像/ proc这样的虚拟文件系统中的文件...

我正在运行Ubuntu 10.04.2 LTS

5 个答案:

答案 0 :(得分:7)

如果使用的是systemd,则以下命令将显示计划的关闭信息。

cat /run/systemd/shutdown/scheduled

答案 1 :(得分:4)

我能想到的最简单的解决方案是编写一个脚本来包装shutdown命令,并在该脚本中创建一个Web应用程序可以检查的文件。

据我所知,shutdown不会将文件写入底层文件系统,虽然它会触发广播消息警告关闭,我想你可以写一个程序来拦截..但上面的解决方案似乎最简单的。

脚本示例:

shutdown.bsh
touch /somefolder/somefile
shutdown -r $1

然后在您的网络应用中检查“somefile”。

你需要添加一个删除'somefile'的启动链接,否则它会在系统出现时仍然存在,并且网络应用程序会一直告诉用户它即将关闭。

答案 2 :(得分:4)

您只需检查正在运行的关机过程:

if ps -C shutdown > /dev/null; then
  echo "Shutdown is pending"
else
  echo "Shutdown is not scheduled"
fi

答案 3 :(得分:0)

你可以写一个守护进程,当它捕获 SIGINT / SIGQUIT 信号时发出声明。

答案 4 :(得分:0)

对于较新的linux发行版,您可能需要执行以下操作:

busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown

关机方式已更改

尝试: -Debian伸展9.6 -Ubuntu 18.04.1 LTS

参考