如果你的daemon不知道怎么就退出了,很有可能是处理过程中产生了什么信号,
导致daemon莫名其妙的就终止了,
可以将类似如下程序加入daemon中进行信号跟踪。
结果写进syslog里了。
可以使用kill -9 `pidof PGNAME`来停止你的应用。
signalhandler.c
#include <unistd.h> #include <string.h> #include <signal.h> #include <stdio.h> #include <syslog.h> void signal_handler(int sig) { syslog(6, "catch the sigal:%d\n", sig); } int main(void) { int signum=0; printf("You can input [kill -1]~[kill -%d] to test it.\n" , SIGRTMAX); printf("And [kill -9] to exit it.\n"); for(signum=1; signum <= SIGRTMAX; signum++){ signal(signum, signal_handler); } while(1); return 0; }
编译
#gcc signalhandler.c -o signalhandler
控制台A执行
#./signalhandler
换个控制台B试试如下命令
#kill -15 `pidof signalhandler`
#kill -13 `pidof signalhandler`
......
然后在另外控制台C中
#tail -f /var/log/messages