如何检测从Linux应用程序关机/重新启动

我有一个用C语言编写的应用程序,作为一个守护进程运行,当系统处于关机重启状态时,需要通过RS232发送一些东西,需要区分这两者。 所以我的想法是:在我的应用脚本/etc/init.d/my_app在我的脚本的“停止”的情况下,我会运行/ sbin / runlevel命令获取当前运行级别:0 – closures状态6 – 重新启动状态,然后我会执行一些命令来通知我的守护进程是什么状态,守护进程将通过rs执行通信,然后退出。

我认为它应该工作,但它可能不是最好的解决scheme,尤其是因为我的应用程序已经作为一个守护进程运行,也许我可以直接从系统/内核/库或通过Unix套接字或东西收到一些信号。

最好的祝福

马雷克

Solutions Collecting From Web of "如何检测从Linux应用程序关机/重新启动"

我不确定在系统关闭时将哪个信号发送给应用程序。 我最好的猜测是SIGTERM,如果应用程序不关闭SIGKILL。 那么你是否试图抓住SIGTERM并正确地关闭你的程序呢? 网上有很多例子如何做到这一点。

对于更复杂的流程处理,您可以将SIGUSR1,SIGUSR2发送到您的应用程序。