@@ -75,7 +75,8 @@ function alert(string $msgtype, string $description = '')
75
75
}
76
76
77
77
/**
78
- * Functions to support graceful shutdown of daemons upon receiving a signal
78
+ * Functions to support (graceful) shutdown of daemons upon receiving a
79
+ * signal.
79
80
*/
80
81
function sig_handler (int $ signal , $ siginfo = null )
81
82
{
@@ -85,10 +86,11 @@ function sig_handler(int $signal, $siginfo = null)
85
86
86
87
switch ($ signal ) {
87
88
case SIGHUP :
88
- $ gracefulexitsignalled = true ;
89
- // no break
90
89
case SIGINT : # Ctrl+C
91
90
case SIGTERM :
91
+ $ gracefulexitsignalled = true ;
92
+ // no break
93
+ case SIGQUIT : # Ctrl+/
92
94
$ exitsignalled = true ;
93
95
}
94
96
}
@@ -106,12 +108,13 @@ function initsignals()
106
108
107
109
logmsg (LOG_DEBUG , "Installing signal handlers " );
108
110
109
- // Install signal handler for TERMINATE, HANGUP and INTERRUPT
110
- // signals. The sleep() call will automatically return on
111
- // receiving a signal.
112
- pcntl_signal (SIGTERM , "sig_handler " );
111
+ // Install signal handler for HANGUP, INTERRUPT, QUIT and TERMINATE
112
+ // signals. All but the QUIT signal should trigger a graceful shutdown.
113
+ // The sleep() call will automatically return on receiving a signal.
113
114
pcntl_signal (SIGHUP , "sig_handler " );
114
115
pcntl_signal (SIGINT , "sig_handler " );
116
+ pcntl_signal (SIGQUIT , "sig_handler " );
117
+ pcntl_signal (SIGTERM , "sig_handler " );
115
118
}
116
119
117
120
/**
0 commit comments