child_process module) from a long-running server process I've been spawning
a node process which executes the code from the server process which in
turn executes all the potentially crashing processes. This way - I figured
- the server process was isolated both from any crashes of the spawned node
program and of any of it's binaries, also the idea of killing the child
process if it's taking too long appeals to me. However I discovered killing
a child process doesn't automatically kill and process that child process
spawns.
To solve this issue I read up a bit about how signals work in relation to
processes and child processes I found a solution:
1. Start the child process with the option 'detached': true, this causes
the child to become part of a new process group
2. Instead of killing the child process via childProc.kill(signal) kill
it with process.kill(-childProc.pid, signal) (note the - in front of the
pid) this kills the entire process group
This seems to work on linux, I'm not sure if it works in other environments
but for our current use case that's not important. But what I'm wary about
is using an undocumented feature (granted, it's documented in the POSIX C
library but not Node which wraps it) so I'd like to know if I can rely on
this feature?
--
Job Board: http://jobs.nodejs.org/
Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en