Re: [GENERAL] Shutting down a warm standby database in 8.2beta3
Stephen Harris <lists@spuddy.org>
From: Stephen Harris <lists@spuddy.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgresql.org
Date: 2006-11-18T03:54:55Z
Lists: pgsql-hackers, pgsql-general
On Fri, Nov 17, 2006 at 10:49:39PM -0500, Tom Lane wrote: > Stephen Harris <lists@spuddy.org> writes: > > However, it seems the signal wasn't sent at all. > > Now that I think about it, the behavior of system() is predicated on the > assumption that SIGINT and SIGQUIT originate with the tty driver and are > broadcast to all members of the session's process group --- so the > 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. -- rgds Stephen