waitpid関数の使用

948 ワード

サブプロセスが正常なコードを実行しているかどうかを監視します.
while (1)
    {
        if (waitpid(pid, NULL, WNOHANG))//           
        {
            pid = ForkWorker();
            if (pid < 0) 
            {
                ERROR_LOG("master_monitoragent: failed to refork worker_monitoragent!");
            }
            else if (pid > 0)
            {
                INFO_LOG("master_monitoragent: success to refork worker_monitoragent!");
            }
        }
        sleep(5);
    }