in reply to Control other processes

A common approach would be to store the PIDs of the started daemons (in a file, DB, whatever...), and then use kill with signal zero to check whether those PIDs are still alive. If not, restart them and remove the old PID from the list...  In case the process is alive, you may also want to check the process name, to make sure it's not some other program which has 'recycled' the same PID in the meantime.