|
@@ -944,8 +944,8 @@ class Worker
|
|
|
if (\is_file($statistics_file)) {
|
|
if (\is_file($statistics_file)) {
|
|
|
@\unlink($statistics_file);
|
|
@\unlink($statistics_file);
|
|
|
}
|
|
}
|
|
|
- // Master process will send SIGUSR2 signal to all child processes.
|
|
|
|
|
- \posix_kill($master_pid, SIGUSR2);
|
|
|
|
|
|
|
+ // Master process will send SIGIOT signal to all child processes.
|
|
|
|
|
+ \posix_kill($master_pid, SIGIOT);
|
|
|
// Sleep 1 second.
|
|
// Sleep 1 second.
|
|
|
\sleep(1);
|
|
\sleep(1);
|
|
|
// Clear terminal.
|
|
// Clear terminal.
|
|
@@ -977,7 +977,7 @@ class Worker
|
|
|
case 'stop':
|
|
case 'stop':
|
|
|
if ($mode === '-g') {
|
|
if ($mode === '-g') {
|
|
|
static::$_gracefulStop = true;
|
|
static::$_gracefulStop = true;
|
|
|
- $sig = \SIGHUP;
|
|
|
|
|
|
|
+ $sig = \SIGQUIT;
|
|
|
static::log("Workerman[$start_file] is gracefully stopping ...");
|
|
static::log("Workerman[$start_file] is gracefully stopping ...");
|
|
|
} else {
|
|
} else {
|
|
|
static::$_gracefulStop = false;
|
|
static::$_gracefulStop = false;
|
|
@@ -1015,9 +1015,9 @@ class Worker
|
|
|
break;
|
|
break;
|
|
|
case 'reload':
|
|
case 'reload':
|
|
|
if($mode === '-g'){
|
|
if($mode === '-g'){
|
|
|
- $sig = \SIGQUIT;
|
|
|
|
|
- }else{
|
|
|
|
|
$sig = \SIGUSR1;
|
|
$sig = \SIGUSR1;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $sig = \SIGUSR2;
|
|
|
}
|
|
}
|
|
|
\posix_kill($master_pid, $sig);
|
|
\posix_kill($master_pid, $sig);
|
|
|
exit;
|
|
exit;
|
|
@@ -1128,14 +1128,18 @@ class Worker
|
|
|
\pcntl_signal(\SIGINT, $signalHandler, false);
|
|
\pcntl_signal(\SIGINT, $signalHandler, false);
|
|
|
// stop
|
|
// stop
|
|
|
\pcntl_signal(\SIGTERM, $signalHandler, false);
|
|
\pcntl_signal(\SIGTERM, $signalHandler, false);
|
|
|
- // graceful stop
|
|
|
|
|
|
|
+ // stop
|
|
|
\pcntl_signal(\SIGHUP, $signalHandler, false);
|
|
\pcntl_signal(\SIGHUP, $signalHandler, false);
|
|
|
|
|
+ // stop
|
|
|
|
|
+ \pcntl_signal(\SIGTSTP, $signalHandler, false);
|
|
|
|
|
+ // graceful stop
|
|
|
|
|
+ \pcntl_signal(\SIGQUIT, $signalHandler, false);
|
|
|
// reload
|
|
// reload
|
|
|
- \pcntl_signal(\SIGUSR1, $signalHandler, false);
|
|
|
|
|
|
|
+ \pcntl_signal(\SIGUSR2, $signalHandler, false);
|
|
|
// graceful reload
|
|
// graceful reload
|
|
|
- \pcntl_signal(\SIGQUIT, $signalHandler, false);
|
|
|
|
|
|
|
+ \pcntl_signal(\SIGUSR1, $signalHandler, false);
|
|
|
// status
|
|
// status
|
|
|
- \pcntl_signal(\SIGUSR2, $signalHandler, false);
|
|
|
|
|
|
|
+ \pcntl_signal(\SIGIOT, $signalHandler, false);
|
|
|
// connection status
|
|
// connection status
|
|
|
\pcntl_signal(\SIGIO, $signalHandler, false);
|
|
\pcntl_signal(\SIGIO, $signalHandler, false);
|
|
|
// ignore
|
|
// ignore
|
|
@@ -1157,26 +1161,34 @@ class Worker
|
|
|
\pcntl_signal(\SIGINT, \SIG_IGN, false);
|
|
\pcntl_signal(\SIGINT, \SIG_IGN, false);
|
|
|
// uninstall stop signal handler
|
|
// uninstall stop signal handler
|
|
|
\pcntl_signal(\SIGTERM, \SIG_IGN, false);
|
|
\pcntl_signal(\SIGTERM, \SIG_IGN, false);
|
|
|
- // uninstall graceful stop signal handler
|
|
|
|
|
|
|
+ // uninstall stop signal handler
|
|
|
\pcntl_signal(\SIGHUP, \SIG_IGN, false);
|
|
\pcntl_signal(\SIGHUP, \SIG_IGN, false);
|
|
|
|
|
+ // uninstall stop signal handler
|
|
|
|
|
+ \pcntl_signal(\SIGTSTP, \SIG_IGN, false);
|
|
|
|
|
+ // uninstall graceful stop signal handler
|
|
|
|
|
+ \pcntl_signal(\SIGQUIT, \SIG_IGN, false);
|
|
|
// uninstall reload signal handler
|
|
// uninstall reload signal handler
|
|
|
- \pcntl_signal(\SIGUSR1, \SIG_IGN, false);
|
|
|
|
|
|
|
+ \pcntl_signal(\SIGUSR2, \SIG_IGN, false);
|
|
|
// uninstall graceful reload signal handler
|
|
// uninstall graceful reload signal handler
|
|
|
- \pcntl_signal(\SIGQUIT, \SIG_IGN, false);
|
|
|
|
|
|
|
+ \pcntl_signal(\SIGUSR1, \SIG_IGN, false);
|
|
|
// uninstall status signal handler
|
|
// uninstall status signal handler
|
|
|
- \pcntl_signal(\SIGUSR2, \SIG_IGN, false);
|
|
|
|
|
|
|
+ \pcntl_signal(\SIGIOT, \SIG_IGN, false);
|
|
|
// uninstall connections status signal handler
|
|
// uninstall connections status signal handler
|
|
|
\pcntl_signal(\SIGIO, \SIG_IGN, false);
|
|
\pcntl_signal(\SIGIO, \SIG_IGN, false);
|
|
|
// reinstall stop signal handler
|
|
// reinstall stop signal handler
|
|
|
static::$globalEvent->add(\SIGINT, EventInterface::EV_SIGNAL, $signalHandler);
|
|
static::$globalEvent->add(\SIGINT, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
// reinstall graceful stop signal handler
|
|
// reinstall graceful stop signal handler
|
|
|
|
|
+ static::$globalEvent->add(\SIGQUIT, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
|
|
+ // reinstall graceful stop signal handler
|
|
|
static::$globalEvent->add(\SIGHUP, EventInterface::EV_SIGNAL, $signalHandler);
|
|
static::$globalEvent->add(\SIGHUP, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
|
|
+ // reinstall graceful stop signal handler
|
|
|
|
|
+ static::$globalEvent->add(\SIGTSTP, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
// reinstall reload signal handler
|
|
// reinstall reload signal handler
|
|
|
- static::$globalEvent->add(\SIGUSR1, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
|
|
|
|
+ static::$globalEvent->add(\SIGUSR2, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
// reinstall graceful reload signal handler
|
|
// reinstall graceful reload signal handler
|
|
|
- static::$globalEvent->add(\SIGQUIT, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
|
|
|
|
+ static::$globalEvent->add(\SIGUSR1, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
// reinstall status signal handler
|
|
// reinstall status signal handler
|
|
|
- static::$globalEvent->add(\SIGUSR2, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
|
|
|
|
+ static::$globalEvent->add(\SIGIOT, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
// reinstall connection status signal handler
|
|
// reinstall connection status signal handler
|
|
|
static::$globalEvent->add(\SIGIO, EventInterface::EV_SIGNAL, $signalHandler);
|
|
static::$globalEvent->add(\SIGIO, EventInterface::EV_SIGNAL, $signalHandler);
|
|
|
}
|
|
}
|
|
@@ -1192,23 +1204,25 @@ class Worker
|
|
|
// Stop.
|
|
// Stop.
|
|
|
case \SIGINT:
|
|
case \SIGINT:
|
|
|
case \SIGTERM:
|
|
case \SIGTERM:
|
|
|
|
|
+ case \SIGHUP:
|
|
|
|
|
+ case \SIGTSTP;
|
|
|
static::$_gracefulStop = false;
|
|
static::$_gracefulStop = false;
|
|
|
static::stopAll();
|
|
static::stopAll();
|
|
|
break;
|
|
break;
|
|
|
// Graceful stop.
|
|
// Graceful stop.
|
|
|
- case \SIGHUP:
|
|
|
|
|
|
|
+ case \SIGQUIT:
|
|
|
static::$_gracefulStop = true;
|
|
static::$_gracefulStop = true;
|
|
|
static::stopAll();
|
|
static::stopAll();
|
|
|
break;
|
|
break;
|
|
|
// Reload.
|
|
// Reload.
|
|
|
- case \SIGQUIT:
|
|
|
|
|
case \SIGUSR1:
|
|
case \SIGUSR1:
|
|
|
- static::$_gracefulStop = $signal === \SIGQUIT;
|
|
|
|
|
|
|
+ case \SIGUSR2:
|
|
|
|
|
+ static::$_gracefulStop = $signal === \SIGUSR1;
|
|
|
static::$_pidsToRestart = static::getAllWorkerPids();
|
|
static::$_pidsToRestart = static::getAllWorkerPids();
|
|
|
static::reload();
|
|
static::reload();
|
|
|
break;
|
|
break;
|
|
|
// Show status.
|
|
// Show status.
|
|
|
- case \SIGUSR2:
|
|
|
|
|
|
|
+ case \SIGIOT:
|
|
|
static::writeStatisticsToStatusFile();
|
|
static::writeStatisticsToStatusFile();
|
|
|
break;
|
|
break;
|
|
|
// Show connection status.
|
|
// Show connection status.
|
|
@@ -1753,9 +1767,9 @@ class Worker
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (static::$_gracefulStop) {
|
|
if (static::$_gracefulStop) {
|
|
|
- $sig = \SIGQUIT;
|
|
|
|
|
- } else {
|
|
|
|
|
$sig = \SIGUSR1;
|
|
$sig = \SIGUSR1;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $sig = \SIGUSR2;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Send reload signal to all child processes.
|
|
// Send reload signal to all child processes.
|
|
@@ -1832,7 +1846,7 @@ class Worker
|
|
|
$worker_pid_array = static::getAllWorkerPids();
|
|
$worker_pid_array = static::getAllWorkerPids();
|
|
|
// Send stop signal to all child processes.
|
|
// Send stop signal to all child processes.
|
|
|
if (static::$_gracefulStop) {
|
|
if (static::$_gracefulStop) {
|
|
|
- $sig = \SIGHUP;
|
|
|
|
|
|
|
+ $sig = \SIGQUIT;
|
|
|
} else {
|
|
} else {
|
|
|
$sig = \SIGINT;
|
|
$sig = \SIGINT;
|
|
|
}
|
|
}
|
|
@@ -1965,7 +1979,7 @@ class Worker
|
|
|
\chmod(static::$_statisticsFile, 0722);
|
|
\chmod(static::$_statisticsFile, 0722);
|
|
|
|
|
|
|
|
foreach (static::getAllWorkerPids() as $worker_pid) {
|
|
foreach (static::getAllWorkerPids() as $worker_pid) {
|
|
|
- \posix_kill($worker_pid, \SIGUSR2);
|
|
|
|
|
|
|
+ \posix_kill($worker_pid, \SIGIOT);
|
|
|
}
|
|
}
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|