title: Designing a monitor process for monitoring and restarting processes
body: <p>I am designing a monitor process. The job of the monitor process is to monitor a few set of configured processes. When the monitor process detects that a process has gone down, it needs to restart the process.</p>
  
  <p>I am developing the code for my linux system. Here is how I developed a small prototype
  - Fed the details(path, arguments) about the various processes that need to be monitored. - The monitor process did the following:
  1. Installed a signal handler for SIGCHLD 
  2. A fork and execv to start the process to be monitored. Store the pid of the child processes.
  3. When a child went down, the parent recevies a SIGCHLD 
  4. The signal handler will now be called. The handler will run a for loop on the list of pids stored earlier. For each pid, it will check the /proc filesystem for existence of a directory corresponding to the pid. If the directory doesn't exist, the process is restarted. </p>
  
  <p>Now, my question is this
  - Is the above method (to check the /proc filesystem) a standard or recommended mechanism of checking if a process is running or should I do something like creating a pipe for the ps command and looping through the output of ps ?
  - Is there a better way of achieving my requirement?</p>
  
  <p>Regards.</p>