由于我尽快为我的Ubuntu服务器安装挂起的更新,我必须经常重启我的linux服务器。我正在该服务器上运行webapp,并且想要警告我的用户有关挂起的重启。现在,我手动执行此操作,在重新启动之前添加通知,给他们一些时间来完成工作,重新启动并删除公告。
我希望,shutdown -r +60
写一个文件,其中包含有关重启的所有信息,我可以检查每次访问。有这样的文件吗?由于性能原因,更喜欢像/ proc这样的虚拟文件系统中的文件...
我正在运行Ubuntu 10.04.2 LTS
答案 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
参考