2021-01-29 20:47:00 +08:00
|
|
|
<?php
|
|
|
|
|
|
2022-03-15 18:05:33 +08:00
|
|
|
declare(strict_types=1);
|
2021-01-29 20:47:00 +08:00
|
|
|
|
2021-06-16 00:17:30 +08:00
|
|
|
namespace ZM\Command\Daemon;
|
2021-01-29 20:47:00 +08:00
|
|
|
|
|
|
|
|
use Symfony\Component\Console\Command\Command;
|
|
|
|
|
use Symfony\Component\Console\Input\InputInterface;
|
|
|
|
|
use Symfony\Component\Console\Output\OutputInterface;
|
2022-03-13 22:46:22 +08:00
|
|
|
use ZM\Framework;
|
2021-01-29 20:47:00 +08:00
|
|
|
|
|
|
|
|
abstract class DaemonCommand extends Command
|
|
|
|
|
{
|
2022-03-15 18:05:33 +08:00
|
|
|
protected $daemon_file;
|
2021-01-29 20:47:00 +08:00
|
|
|
|
2022-03-15 18:05:33 +08:00
|
|
|
protected function execute(InputInterface $input, OutputInterface $output): int
|
|
|
|
|
{
|
2022-03-13 22:46:22 +08:00
|
|
|
$file = Framework::getProcessState(ZM_PROCESS_MASTER);
|
2022-03-15 18:05:33 +08:00
|
|
|
if ($file === false || posix_getsid(intval($file['pid'])) === false) {
|
|
|
|
|
$output->writeln('<comment>未检测到正在运行的守护进程或框架进程!</comment>');
|
2022-03-13 22:46:22 +08:00
|
|
|
Framework::removeProcessState(ZM_PROCESS_MASTER);
|
2022-03-15 18:05:33 +08:00
|
|
|
exit(1);
|
2021-01-29 20:47:00 +08:00
|
|
|
}
|
|
|
|
|
$this->daemon_file = $file;
|
2021-04-06 01:19:56 +08:00
|
|
|
return 0;
|
2021-01-29 20:47:00 +08:00
|
|
|
}
|
2022-03-15 18:05:33 +08:00
|
|
|
}
|