Skip to content

Commit

Permalink
sinal change
Browse files Browse the repository at this point in the history
  • Loading branch information
walkor committed Feb 25, 2022
1 parent 5f387d0 commit 34fa51d
Showing 1 changed file with 38 additions and 24 deletions.
62 changes: 38 additions & 24 deletions Worker.php
Original file line number Diff line number Diff line change
Expand Up @@ -944,8 +944,8 @@ protected static function parseCommand()
if (\is_file($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);
// Clear terminal.
Expand Down Expand Up @@ -977,7 +977,7 @@ protected static function parseCommand()
case 'stop':
if ($mode === '-g') {
static::$_gracefulStop = true;
$sig = \SIGHUP;
$sig = \SIGQUIT;
static::log("Workerman[$start_file] is gracefully stopping ...");
} else {
static::$_gracefulStop = false;
Expand Down Expand Up @@ -1015,9 +1015,9 @@ protected static function parseCommand()
break;
case 'reload':
if($mode === '-g'){
$sig = \SIGQUIT;
}else{
$sig = \SIGUSR1;
}else{
$sig = \SIGUSR2;
}
\posix_kill($master_pid, $sig);
exit;
Expand Down Expand Up @@ -1128,14 +1128,18 @@ protected static function installSignal()
\pcntl_signal(\SIGINT, $signalHandler, false);
// stop
\pcntl_signal(\SIGTERM, $signalHandler, false);
// graceful stop
// stop
\pcntl_signal(\SIGHUP, $signalHandler, false);
// stop
\pcntl_signal(\SIGTSTP, $signalHandler, false);
// graceful stop
\pcntl_signal(\SIGQUIT, $signalHandler, false);
// reload
\pcntl_signal(\SIGUSR1, $signalHandler, false);
\pcntl_signal(\SIGUSR2, $signalHandler, false);
// graceful reload
\pcntl_signal(\SIGQUIT, $signalHandler, false);
\pcntl_signal(\SIGUSR1, $signalHandler, false);
// status
\pcntl_signal(\SIGUSR2, $signalHandler, false);
\pcntl_signal(\SIGIOT, $signalHandler, false);
// connection status
\pcntl_signal(\SIGIO, $signalHandler, false);
// ignore
Expand All @@ -1157,26 +1161,34 @@ protected static function reinstallSignal()
\pcntl_signal(\SIGINT, \SIG_IGN, false);
// uninstall stop signal handler
\pcntl_signal(\SIGTERM, \SIG_IGN, false);
// uninstall graceful stop signal handler
// uninstall stop signal handler
\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
\pcntl_signal(\SIGUSR1, \SIG_IGN, false);
\pcntl_signal(\SIGUSR2, \SIG_IGN, false);
// uninstall graceful reload signal handler
\pcntl_signal(\SIGQUIT, \SIG_IGN, false);
\pcntl_signal(\SIGUSR1, \SIG_IGN, false);
// uninstall status signal handler
\pcntl_signal(\SIGUSR2, \SIG_IGN, false);
\pcntl_signal(\SIGIOT, \SIG_IGN, false);
// uninstall connections status signal handler
\pcntl_signal(\SIGIO, \SIG_IGN, false);
// reinstall stop signal handler
static::$globalEvent->add(\SIGINT, EventInterface::EV_SIGNAL, $signalHandler);
// 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);
// reinstall graceful stop signal handler
static::$globalEvent->add(\SIGTSTP, EventInterface::EV_SIGNAL, $signalHandler);
// 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
static::$globalEvent->add(\SIGQUIT, EventInterface::EV_SIGNAL, $signalHandler);
static::$globalEvent->add(\SIGUSR1, EventInterface::EV_SIGNAL, $signalHandler);
// 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
static::$globalEvent->add(\SIGIO, EventInterface::EV_SIGNAL, $signalHandler);
}
Expand All @@ -1192,23 +1204,25 @@ public static function signalHandler($signal)
// Stop.
case \SIGINT:
case \SIGTERM:
case \SIGHUP:
case \SIGTSTP;
static::$_gracefulStop = false;
static::stopAll();
break;
// Graceful stop.
case \SIGHUP:
case \SIGQUIT:
static::$_gracefulStop = true;
static::stopAll();
break;
// Reload.
case \SIGQUIT:
case \SIGUSR1:
static::$_gracefulStop = $signal === \SIGQUIT;
case \SIGUSR2:
static::$_gracefulStop = $signal === \SIGUSR1;
static::$_pidsToRestart = static::getAllWorkerPids();
static::reload();
break;
// Show status.
case \SIGUSR2:
case \SIGIOT:
static::writeStatisticsToStatusFile();
break;
// Show connection status.
Expand Down Expand Up @@ -1753,9 +1767,9 @@ protected static function reload()
}

if (static::$_gracefulStop) {
$sig = \SIGQUIT;
} else {
$sig = \SIGUSR1;
} else {
$sig = \SIGUSR2;
}

// Send reload signal to all child processes.
Expand Down Expand Up @@ -1832,7 +1846,7 @@ public static function stopAll($code = 0, $log = '')
$worker_pid_array = static::getAllWorkerPids();
// Send stop signal to all child processes.
if (static::$_gracefulStop) {
$sig = \SIGHUP;
$sig = \SIGQUIT;
} else {
$sig = \SIGINT;
}
Expand Down Expand Up @@ -1965,7 +1979,7 @@ protected static function writeStatisticsToStatusFile()
\chmod(static::$_statisticsFile, 0722);

foreach (static::getAllWorkerPids() as $worker_pid) {
\posix_kill($worker_pid, \SIGUSR2);
\posix_kill($worker_pid, \SIGIOT);
}
return;
}
Expand Down

0 comments on commit 34fa51d

Please sign in to comment.