walkor 3 gadi atpakaļ
vecāks
revīzija
34fa51d178
1 mainītis faili ar 38 papildinājumiem un 24 dzēšanām
  1. 38 24
      Worker.php

+ 38 - 24
Worker.php

@@ -944,8 +944,8 @@ class Worker
                     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.
@@ -977,7 +977,7 @@ class Worker
             case 'stop':
                 if ($mode === '-g') {
                     static::$_gracefulStop = true;
-                    $sig = \SIGHUP;
+                    $sig = \SIGQUIT;
                     static::log("Workerman[$start_file] is gracefully stopping ...");
                 } else {
                     static::$_gracefulStop = false;
@@ -1015,9 +1015,9 @@ class Worker
                 break;
             case 'reload':
                 if($mode === '-g'){
-                    $sig = \SIGQUIT;
-                }else{
                     $sig = \SIGUSR1;
+                }else{
+                    $sig = \SIGUSR2;
                 }
                 \posix_kill($master_pid, $sig);
                 exit;
@@ -1128,14 +1128,18 @@ class Worker
         \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
@@ -1157,26 +1161,34 @@ class Worker
         \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);
     }
@@ -1192,23 +1204,25 @@ class Worker
             // 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.
@@ -1753,9 +1767,9 @@ class Worker
             }
 
             if (static::$_gracefulStop) {
-                $sig = \SIGQUIT;
-            } else {
                 $sig = \SIGUSR1;
+            } else {
+                $sig = \SIGUSR2;
             }
 
             // Send reload signal to all child processes.
@@ -1832,7 +1846,7 @@ class Worker
             $worker_pid_array = static::getAllWorkerPids();
             // Send stop signal to all child processes.
             if (static::$_gracefulStop) {
-                $sig = \SIGHUP;
+                $sig = \SIGQUIT;
             } else {
                 $sig = \SIGINT;
             }
@@ -1965,7 +1979,7 @@ class Worker
             \chmod(static::$_statisticsFile, 0722);
 
             foreach (static::getAllWorkerPids() as $worker_pid) {
-                \posix_kill($worker_pid, \SIGUSR2);
+                \posix_kill($worker_pid, \SIGIOT);
             }
             return;
         }