I am using Linux
and .sh
is in tcsh
.
I have made a very basic fork and exec, but I need help in implementing safeties to it.
Basically my perl script calls a .sh
script in a child process. But when I do Ctrl+c
to kill the parent, the signal gets ignored by the child.
1) How do I capture the SIGINT
for the child process as well?
2) The child process that runs the .sh script still STDOUT to the screen of the xterm. How can I remove this? I was thinking of doing running the script in the background
exec("shell.sh args &");
But haven't tested as I need to figure out how to keep the child from going wild first.
3) The parent process(perl script) doesn't wait on the child(.sh script). So I've read a lot about the child becoming a zombie??? Will it happen after the script is done? And how would I stop it?
$pid = fork();
if($pid < 0){
print "Failed to fork process... Exiting";
exit(-1);
}
elsif ($pid ==0) {
#child process
exec("shell.sh args");
exit(1);
}
else { #execute rest of parent}