Segfaults, other signals, fork, etc.

E

Elliott Hird

I have this code:

Process.waitpid(fork { exec "stuff" })

Outside of the fork, how can i detect various signals sent to stuff?
SIGSEV, etc.
 
R

Robert Klemme

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
 
E

Elliott Hird

Robert said:
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()?
 
N

Nobuyoshi Nakada

Hi,

At Sun, 22 Apr 2007 01:03:51 +0900,
Elliott Hird 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)>]
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,599
Members
45,175
Latest member
Vinay Kumar_ Nevatia
Top