Stephen Harris <[EMAIL PROTECTED]> writes: > On Fri, Nov 17, 2006 at 10:49:39PM -0500, Tom Lane wrote: >> This does not apply to signals originated by the postmaster --- it >> doesn't even know that the child process is doing a system(), much less >> have any way to signal the grandchild. Ugh.
> Why not, after calling fork() create a new process group with setsid() and > then instead of killing the recovery thread, kill the whole process group > (-PID rather than PID)? Then every process (the recovery thread, the > system, the script, any child of the script) will all receive the signal. This seems like a good answer if setsid and/or setpgrp are universally available. I fear it won't work on Windows though :-(. Also, each backend would become its own process group leader --- does anyone know if adding hundreds of process groups would slow down any popular kernels? [ thinks for a bit... ] Another issue is that there'd be a race condition during backend start: if the postmaster tries to kill -PID before the backend has managed to execute setsid, it wouldn't work. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend