Files
zhamao-framework/src/ZM/Command/Daemon/DaemonStopCommand.php

38 lines
1.0 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
2021-06-16 00:17:30 +08:00
namespace ZM\Command\Daemon;
use Swoole\Process;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
2022-03-13 22:46:22 +08:00
use ZM\Framework;
class DaemonStopCommand extends DaemonCommand
{
protected static $defaultName = 'daemon:stop';
protected function configure()
{
$this->setDescription('停止运行的框架');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
parent::execute($input, $output);
Process::kill(intval($this->daemon_file['pid']), SIGTERM);
2021-07-09 02:15:04 +08:00
$i = 10;
2022-03-13 22:46:22 +08:00
while (Framework::getProcessState(ZM_PROCESS_MASTER) !== false && $i > 0) {
2021-07-09 02:15:04 +08:00
sleep(1);
--$i;
}
if ($i === 0) {
$output->writeln('<error>停止失败请检查进程pid #' . $this->daemon_file['pid'] . ' 是否响应!</error>');
2021-07-09 02:15:04 +08:00
} else {
$output->writeln('<info>成功停止!</info>');
2021-07-09 02:15:04 +08:00
}
2021-04-06 01:19:56 +08:00
return 0;
}
}