Hey!
I user win32/Process to spawn a child Process in my Application
myProc = Process.create(:app_name => "ruby test.rb")
and kill it with
Process.kill(1, myProc.process_id)
How can i trap the signal in the Child Process to do cleanup stuff?
thx
···
--
Posted via http://www.ruby-forum.com/.
$ ri Signal.trap
----------------------------------------------------------- Signal::trap
Signal.trap( signal, proc ) => obj
Signal.trap( signal ) {| | block } => obj
···
------------------------------------------------------------------------
Specifies the handling of signals. The first parameter is a signal
name (a string such as ``SIGALRM'', ``SIGUSR1'', and so on) or a
signal number. The characters ``SIG'' may be omitted from the
signal name. The command or block specifies code to be run when the
signal is raised. If the command is the string ``IGNORE'' or
``SIG_IGN'', the signal will be ignored. If the command is
``DEFAULT'' or ``SIG_DFL'', the operating system's default handler
will be invoked. If the command is ``EXIT'', the script will be
terminated by the signal. Otherwise, the given command or block
will be run. The special signal name ``EXIT'' or signal number zero
will be invoked just prior to program termination. trap returns the
previous handler for the given signal.
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
produces:
Terminating: 27461
Child died
Terminating: 27460
--
Avdi
Home: http://avdi.org
Developer Blog: http://avdi.org/devblog/
Twitter: http://twitter.com/avdi
Journal: http://avdi.livejournal.com
Avdi Grimm wrote:
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
produces:
Terminating: 27461
Child died
Terminating: 27460
Yeah, i know. But this obviously doesn't work with win32.
My traps don't catch anything *gg*
ck
···
--
Posted via http://www.ruby-forum.com/\.
Avdi Grimm wrote:
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
[snip]
Yeah, i know. But this obviously doesn't work with win32.
My traps don't catch anything *gg*
If you can't find a more portable solution, look at Win32 events, starting
with the CreateEvent function.
···
On Tue, 15 Apr 2008 07:59:42 -0500, Christian Kerth wrote:
--
Charles Calvert | Software Design/Development
Celtic Wolf, Inc. | Project Management
http://www.celticwolf.com/ | Technical Writing
(703) 580-0210 | Research