当前位置: 技术问答>linux和unix
一个不太负责的父亲(守护进程疑惑篇)
来源: 互联网 发布时间:2016-03-27
本文导语: 大家好:我修改了网上的一个守护进程的例子,目的是为了实现使用守护进程监视几个工作进程的活动,工作进程停止时重新启动该工作进程。在脚本中使用信号来控制守护进程,start负责自动,reload负责重新加载数...
大家好:我修改了网上的一个守护进程的例子,目的是为了实现使用守护进程监视几个工作进程的活动,工作进程停止时重新启动该工作进程。在脚本中使用信号来控制守护进程,start负责自动,reload负责重新加载数据,stop负责停止。但程序在我的linux环境下一切正常,linux下环境是RHEL(2.6.9-22)但,放在AIX下运行的时候,第一次reload时一切都正常,但第而次调用reload的时候负责管理的父进程自己结束了,丢下了一堆孩子无人照顾,感觉很不负责,就是不知道是哪里出了问题,每次第二次调用reload的时候都这样,请各位大虾帮忙看看这个不负责任的父亲为什么异常退出了,谢谢。代码如下:
PS;除了这个问题之外我还有一个疑问,就算reload每次都有效果,但如果父进程自己异常退出了怎么办呢,工作进程可以让管理进程守护,但管理进程也是进程,是不是也有异常退出的时候啊,这个时候怎么办呢?疑惑中。。。 望各位大侠不吝赐教。
--------------------------------------------------------
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX_JOB_PROCESS_NUM 4 /* 最大工作进程的数目和一级子目录的个数相同 */
int pidNum = -1; /* 工作进程数组下标 */
int pidChilds[MAX_JOB_PROCESS_NUM]; /* 工作进程数组 */
int workDir[MAX_JOB_PROCESS_NUM]; /* 工作进程数组对于的工作目录 */
int shareData = -1;
int status = -1; /* 子进程退出状态码 */
int reloadFlag = 0; /* 子进程监视这个变量决定是否退出 */
void init_daemon(){ /* 守护进程初始化函数 */
int pid = -1;
int i = -1;
if(pid = fork()){
exit(0); /* 是父进程,结束父进程 */
}else if(pid
PS;除了这个问题之外我还有一个疑问,就算reload每次都有效果,但如果父进程自己异常退出了怎么办呢,工作进程可以让管理进程守护,但管理进程也是进程,是不是也有异常退出的时候啊,这个时候怎么办呢?疑惑中。。。 望各位大侠不吝赐教。
--------------------------------------------------------
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX_JOB_PROCESS_NUM 4 /* 最大工作进程的数目和一级子目录的个数相同 */
int pidNum = -1; /* 工作进程数组下标 */
int pidChilds[MAX_JOB_PROCESS_NUM]; /* 工作进程数组 */
int workDir[MAX_JOB_PROCESS_NUM]; /* 工作进程数组对于的工作目录 */
int shareData = -1;
int status = -1; /* 子进程退出状态码 */
int reloadFlag = 0; /* 子进程监视这个变量决定是否退出 */
void init_daemon(){ /* 守护进程初始化函数 */
int pid = -1;
int i = -1;
if(pid = fork()){
exit(0); /* 是父进程,结束父进程 */
}else if(pid
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!