I have this code:
Process.waitpid(fork { exec “stuff” })
Outside of the fork, how can i detect various signals sent to stuff?
SIGSEV, etc.
I have this code:
Process.waitpid(fork { exec “stuff” })
Outside of the fork, how can i detect various signals sent to stuff?
SIGSEV, etc.
On 21.04.2007 18:03, Elliott H. wrote:
I have this code:
Process.waitpid(fork { exec “stuff” })
Outside of the fork, how can i detect various signals sent to stuff?
SIGSEV, etc.
IIRC you can detect signals only from within the process that receives
those signals. So “stuff” would have to do it. If you want to
interfere with this you need to make sure that whoever sends those
signals sends them to the parent or some kind of proxy which can do
anything with them (including forwarding to the child).
I believe the only way to influence this from the outside is when
signals are set to “ignore”. The child will inherit the ignoring even
after exec.
Kind regards
robert
Robert K. wrote:
IIRC you can detect signals only from within the process that receives
those signals. So “stuff” would have to do it. If you want to
interfere with this you need to make sure that whoever sends those
signals sends them to the parent or some kind of proxy which can do
anything with them (including forwarding to the child).
Would it be possible with Kernel#system()?
Kind regards
robert
Hi,
At Sun, 22 Apr 2007 01:03:51 +0900,
Elliott H. wrote in [ruby-talk:248642]:
I have this code:
Process.waitpid(fork { exec “stuff” })
Outside of the fork, how can i detect various signals sent to stuff?
SIGSEV, etc.
You can detect how the child process exited with $?, or waitpid2.
$ ruby -e ‘pid = fork {exec “sleep 10”}; sleep 0.1;
Process.kill(“TERM”, pid); p Process.waitpid2(pid)’
[23366, #<Process::Status: pid=23366,signaled(SIGTERM=15)>]
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs