【发布时间】:2014-12-01 19:30:38
【问题描述】:
我想在它终止我在 Linux 上的程序之前检测到系统正在重新启动。 我尝试使用 /var/run/utmp 文件来检测运行级别,将 inotify 放在其更改上,但似乎系统在我收到信号之前正在关闭该程序。如果我用 telinit 命令设置运行级别,我会用它来捕捉关机,但如果我只是用 Ubuntu 右上角的按钮重新启动,就不会捕捉到它。
知道怎么做吗?
【问题讨论】:
-
通常重启的事情会向你的进程发送一个
SIGTERM。为什么抓不到?见signal(7) -
作为一个在盒子上运行的程序,你知道你为什么被关闭是你的事吗,如果你有状态,你不只是想保存状态并在任何一种情况下退出吗?
标签: linux detect restart runlevel