Systemd 进程启动后立即退出

Systemd 进程启动后立即退出

我对 systemd 还很陌生,正在尝试编写一个运行 php 脚本的 .service 文件。脚本运行时需要等待其他人的输入才能执行任何操作,并且保持打开状态直到我按下 ctrl-C。

编辑:将其放在这里是为了澄清我的问题

除非将 RemainAfterExit 选项设置为 true,否则此服务在启动后会立即退出。退出代码为 203。使用 RemainAfterExit,它不会退出但永远不会运行。恐怕我很困惑。

以下是我所拥有的通用版本:

[Unit]   
Description=foo
Wants=foo.service

[Service]   
WorkingDirectory=/home/foo/bar
RemainAfterExit=true
ExecStart=/home/foo/bar/foo.php
Restart=on-failure

[Install]
WantedBy=multi-user-.target

我想做的事:

在另一个所需服务之后启动 php 脚本(想要/之后?)

保持 php 脚本运行,可以在终端窗口或后台(简单/分叉?)

不要退出。如果崩溃(失败时)则重新启动。如果我希望它始终运行,是否始终合适?

如果可能的话,我更愿意解释为什么这项服务写得不好/不正确以及我需要做什么,而不是修复代码。由于我正在学习,所以特别欢迎提供链接。

答案1

解决了。​​有两个问题。

问题 1:ExecStart=/home/foo/bar/foo.php

这需要是 ExecStart=/user/bin/(phpversion) -f /home/foo/bar/foo.php 愚蠢的错误!

问题 2:我不得不手动停止该进程,systemctl stop *.service、systemctl daemon-reload、systemctl start *.service。它运行了,我的脚本成功接收/回复了其他客户端。

相关内容