Parcourir la source

listen SIGTERM for docker

walkor il y a 5 ans
Parent
commit
132a277b18
1 fichiers modifiés avec 11 ajouts et 6 suppressions
  1. 11 6
      Worker.php

+ 11 - 6
Worker.php

@@ -953,7 +953,7 @@ class Worker
             case 'stop':
                 if ($command2 === '-g') {
                     static::$_gracefulStop = true;
-                    $sig = \SIGTERM;
+                    $sig = \SIGHUP;
                     static::log("Workerman[$start_file] is gracefully stopping ...");
                 } else {
                     static::$_gracefulStop = false;
@@ -1101,8 +1101,10 @@ class Worker
         $signalHandler = '\Workerman\Worker::signalHandler';
         // stop
         \pcntl_signal(\SIGINT, $signalHandler, false);
-        // graceful stop
+        // stop
         \pcntl_signal(\SIGTERM, $signalHandler, false);
+        // graceful stop
+        \pcntl_signal(\SIGHUP, $signalHandler, false);
         // reload
         \pcntl_signal(\SIGUSR1, $signalHandler, false);
         // graceful reload
@@ -1128,8 +1130,10 @@ class Worker
         $signalHandler = '\Workerman\Worker::signalHandler';
         // uninstall stop signal handler
         \pcntl_signal(\SIGINT, \SIG_IGN, false);
-        // uninstall graceful stop signal handler
+        // uninstall stop signal handler
         \pcntl_signal(\SIGTERM, \SIG_IGN, false);
+        // uninstall graceful stop signal handler
+        \pcntl_signal(\SIGHUP, \SIG_IGN, false);
         // uninstall reload signal handler
         \pcntl_signal(\SIGUSR1, \SIG_IGN, false);
         // uninstall graceful reload signal handler
@@ -1141,7 +1145,7 @@ class Worker
         // reinstall stop signal handler
         static::$globalEvent->add(\SIGINT, EventInterface::EV_SIGNAL, $signalHandler);
         // reinstall graceful stop signal handler
-        static::$globalEvent->add(\SIGTERM, EventInterface::EV_SIGNAL, $signalHandler);
+        static::$globalEvent->add(\SIGHUP, EventInterface::EV_SIGNAL, $signalHandler);
         // reinstall reload signal handler
         static::$globalEvent->add(\SIGUSR1, EventInterface::EV_SIGNAL, $signalHandler);
         // reinstall graceful reload signal handler
@@ -1162,11 +1166,12 @@ class Worker
         switch ($signal) {
             // Stop.
             case \SIGINT:
+            case \SIGTERM:
                 static::$_gracefulStop = false;
                 static::stopAll();
                 break;
             // Graceful stop.
-            case \SIGTERM:
+            case \SIGHUP:
                 static::$_gracefulStop = true;
                 static::stopAll();
                 break;
@@ -1826,7 +1831,7 @@ class Worker
             $worker_pid_array = static::getAllWorkerPids();
             // Send stop signal to all child processes.
             if (static::$_gracefulStop) {
-                $sig = \SIGTERM;
+                $sig = \SIGHUP;
             } else {
                 $sig = \SIGINT;
             }