diff --git a/HttpServer/Events/OnManagerStart.php b/HttpServer/Events/OnManagerStart.php index fd76470e..cb27f279 100644 --- a/HttpServer/Events/OnManagerStart.php +++ b/HttpServer/Events/OnManagerStart.php @@ -28,9 +28,6 @@ class OnManagerStart extends Callback if (Snowflake::isLinux()) { name('Server Manager.'); } - if (System::waitSignal(9 | 15)) { - $server->shutdown(); - } } } diff --git a/HttpServer/Events/OnStart.php b/HttpServer/Events/OnStart.php index 9107ec86..9e6eb374 100644 --- a/HttpServer/Events/OnStart.php +++ b/HttpServer/Events/OnStart.php @@ -29,6 +29,17 @@ class OnStart extends Callback if (Snowflake::isLinux()) { name(rtrim(Config::get('id', 'system:'), ':')); } + + Process::signal(9 | 15, function () use ($server) { + while ($ret = Process::wait()) { + if ($ret['signal'] == 9 || $ret['signal'] == 15) { + $server->shutdown(); + } else { + $server->reload(); + } + } + }); + } }