检测挂起的linux关闭

由于我尽快为我的Ubuntu服务器安装挂起的更新,我必须经常重启我的linux服务器。我正在该服务器上运行webapp,并且想要警告我的用户有关挂起的重启。现在,我手动执行此操作,在重新启动之前添加通知,给他们一些时间来完成他们的工作,重新启动并删除公告。 我希望,
shutdown -r +60
写一个文件,其中包含有关重启的所有信息,我可以检查每次访问。有这样的文件吗?由于性能原因,更喜欢像/ proc这样的虚拟文件系统中的文件... 我正在运行Ubuntu 10.04.2 LTS     
已邀请:
如果您使用的是systemd,则以下命令显示计划的关闭信息。
cat /run/systemd/shutdown/scheduled
    
我可以设想的最简单的解决方案是编写一个脚本来包装shutdown命令,并在该脚本中创建一个Web应用程序可以检查的文件。 据我所知,shutdown不会将文件写入底层文件系统,虽然它会触发广播消息警告关闭,我想你可以写一个程序来拦截..但上面的解决方案似乎最简单。 脚本示例:
shutdown.bsh
touch /somefolder/somefile
shutdown -r $1
然后在您的网络应用中检查“somefile”。 你需要添加一个删除'somefile'的启动链接,否则它会在系统出现时仍然存在,并且Web应用程序总是会告诉用户它即将关闭。     
您只需检查运行关闭过程:
if ps -C shutdown > /dev/null; then
  echo "Shutdown is pending"
else
  echo "Shutdown is not scheduled"
fi
    
您可以编写一个守护程序,它在捕获SIGINT / SIGQUIT信号时执行通知。     
对于较新的Linux发行版本,您可能需要执行以下操作:
busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown
关机如何工作的方法已经改变 试穿: - Debian Stretch 9.6 - Ubuntu 18.04.1 LTS 参考 检查关机时间表是否有效以及何时有效 基于现代systemd的Linux系统上的关闭程序     

要回复问题请先登录注册