1、创建子进程 2、子进程唯一 3、子进程终止后重新启动之。 bool g_bFinished = false ; void SIGNAL_HANDLER( int nStat) ... { printf("nState=%d ",nStat); g_bFinished=true; return;} void SIGNAL_CHLD_HANDLER( int nStat) ... { printf("nStat=%d ",nStat); while( waitpid(0,&nStat,SIGCHLD)>0 ); return;} while (g_bFinished == false ) ... { signal(SIGINT,SIGNAL_HANDLER); signal(SIGTERM,SIGNAL_HANDLER); signal(SIGQUIT,SIGNAL_HANDLER); signal(SIGCHLD,SIGNAL_CHLD_HANDLER); waitpid(0,&nStat,WNOHANG) ; if(is_process_alive(nChildPid)==0)...{ if( ( nPid=fork( ) ) ==0)...{ child_process(); exit(0); } else nChildPid=nPid; }}