fork/system/child processes
Don
dnrlinux at san.rr.com
Wed Dec 3 05:23:28 UTC 2003
This isn't fedora-specific...
I have an application that MUST run forever.... if it crashes, dies,
ends for any reason I want it to start again.
One exception, I want to be able to stop it with a kill term...
So, my solution is a very simple loop...
for (;1==1;) {
system("command-to-run");
#do some sort of logging to show command-to-run ended unexpectedly
}
If my loop program gets a sig term, I want to trap that, kill the child
process and then exit gracefully.
I can trap the signal, but how do I get the pid of the child process
(command-to-run)
I tried:
for (;1==1:)
$newpid = fork;
if ($newpid) {
# parent...
wait;
#log unexpected end of command-to-run
} else {
# child ...
system(command-to-run);
exit;
}
}
but in that case $newpid is the pid of the child that issues "system"...
not the pid of "command-to-run". (expected... but not what I want/need.)
Any suggestions?
Thank you,
Don
More information about the users
mailing list