Index: pg_standby.c
===================================================================
RCS file: /cvsroot/pgsql/contrib/pg_standby/pg_standby.c,v
retrieving revision 1.10.2.3
diff -c -r1.10.2.3 pg_standby.c
*** pg_standby.c	6 Jan 2009 17:27:19 -0000	1.10.2.3
--- pg_standby.c	4 Mar 2009 09:13:34 -0000
***************
*** 451,464 ****
  	signaled = true;
  }
  
  /*------------ MAIN ----------------------------------------*/
  int
  main(int argc, char **argv)
  {
  	int			c;
  
! 	(void) signal(SIGINT, sighandler);
! 	(void) signal(SIGQUIT, sighandler);
  
  	while ((c = getopt(argc, argv, "cdk:lr:s:t:w:")) != -1)
  	{
--- 451,487 ----
  	signaled = true;
  }
  
+ /* We don't want SIGQUIT to core dump */
+ static void
+ sigquit_handler(int sig)
+ {
+ 	signal(SIGINT, SIG_DFL);
+ 	kill(getpid(), SIGINT);
+ }
+ 
+ 
  /*------------ MAIN ----------------------------------------*/
  int
  main(int argc, char **argv)
  {
  	int			c;
  
! 	/*
! 	 * You can send SIGUSR1 to trigger failover.
! 	 *
! 	 * Postmaster uses SIGQUIT to request immediate shutdown. The default
! 	 * action is to core dump, but we don't want that, so trap it and
! 	 * commit suicide without core dump.
! 	 *
! 	 * We used to use SIGINT and SIGQUIT to trigger failover, but that
! 	 * turned out to be a bad idea because postmaster uses SIGQUIT to
! 	 * request immediate shutdown. We still trap SIGINT, but that is
! 	 * deprecated. We will likely switch to using SIGINT for immediate
! 	 * shutdown in future releases.
! 	 */
! 	(void) signal(SIGUSR1, sighandler);
! 	(void) signal(SIGINT, sighandler); /* deprecated, use SIGUSR1 */
! 	(void) signal(SIGQUIT, sigquit_handler);
  
  	while ((c = getopt(argc, argv, "cdk:lr:s:t:w:")) != -1)
  	{
