diff --git a/kms.php b/kms.php index 4fc65e0..2ac1327 100755 --- a/kms.php +++ b/kms.php @@ -1,7 +1,7 @@ #!/usr/bin/env php8 exit'); subExit($NGINX, $PHP_FPM, $VLMCSD); exit; }); + pcntl_signal(SIGINT, function() { // receive SIGINT signal global $NGINX, $PHP_FPM, $VLMCSD; logging::info('Get SIGINT -> exit'); diff --git a/src/Daemon.php b/src/Daemon.php index a34c63a..4900fce 100644 --- a/src/Daemon.php +++ b/src/Daemon.php @@ -48,20 +48,12 @@ function daemon(array $info): void { function subExit(array $nginx, array $phpFpm, array $vlmcsd): void { - $nginxName = $nginx['name']; - $nginxPid = getPid($nginx['pidFile']); - logging::info("Sending kill signal to $nginxName (PID = $nginxPid)"); - posix_kill($nginxPid, SIGTERM); - - $phpFpmName = $phpFpm['name']; - $phpFpmPid = getPid($phpFpm['pidFile']); - logging::info("Sending kill signal to $phpFpmName (PID = $phpFpmPid)"); - posix_kill($phpFpmPid, SIGTERM); - - $vlmcsdName = $vlmcsd['name']; - $vlmcsdPid = getPid($vlmcsd['pidFile']); - logging::info("Sending kill signal to $vlmcsdName (PID = $vlmcsdPid)"); - posix_kill($vlmcsdPid, SIGTERM); + foreach (array($nginx, $phpFpm, $vlmcsd) as $subFunc) { + $subName = $subFunc['name']; + $subPid = getPid($subFunc['pidFile']); + logging::info("Sending kill signal to $subName (PID = $subPid)"); + posix_kill($subPid, SIGTERM); + } logging::info('Waiting sub process exit...'); pcntl_wait($status); // wait all process exit