setDescription('生成框架的 systemd 配置文件'); } protected function execute(InputInterface $input, OutputInterface $output): int { ZMConfig::setDirectory(SOURCE_ROOT_DIR . '/config'); $path = $this->generate(); $output->writeln('成功生成 systemd 文件,位置:' . $path . ''); $output->writeln('有关如何使用 systemd 配置文件,请访问 `https://github.com/zhamao-robot/zhamao-framework/issues/36`'); return 0; } private function generate() { $s = "[Unit]\nDescription=zhamao-framework Daemon\nAfter=rc-local.service\n\n[Service]\nType=simple"; $s .= "\nUser=" . exec('whoami'); $s .= "\nGroup=" . exec("groups | awk '{print $1}'"); $s .= "\nWorkingDirectory=" . getcwd(); global $argv; $s .= "\nExecStart=" . PHP_BINARY . " {$argv[0]} server"; $s .= "\nRestart=always\n\n[Install]\nWantedBy=multi-user.target\n"; file_put_contents(WORKING_DIR . '/zhamao.service', $s); return WORKING_DIR . '/zhamao.service'; } }