当工作进程worker()意外崩溃时,自动重启worker().
int watch_dog(){
pid_t idCur = getpid();
pid_t idChild = 0;
pid_t id2 = 0;
while(RUNNING){
if((idChild = fork())<0){
return -1001;
}
if( 0==idChild){
return worker();
}
do{
int stat = 0;
// 这里等待子进程worker()的所有子进程退出,防止变成僵尸进程
id2 = wait( &stat);
// watch_dog()进程退出
if(id2==idCur){
return -1002;
}
}while( id2!=idChild);
}
return 0;
}