Linux下的实时监控怎么实现(不要说crontab定时任务。。)
父子进程模型:
while (run == yes && should retry) {
pid = fork();
if (pid == 0) {
// 子进程
exec your program
} else {
// 父进程
pid = waitpid(pid, &status, options); // 父进程会阻塞在这里,直到子进程退出
// 分析原因,记录日志,告警等等...
}
}
可以参考lighttpd的实现:https://github.com/lighttpd/lighttpd1.4/blob/f3b577ddee36b9555331dfbcddb6a200df2ba438/src/server.c#LC1081
看你想监控什么东西咯。守护进程应该是一个可选的方案吧,它的父进程是init,在后台运行