我已将其设置为我们希望在机器上运行的准系统:
[Unit]
Description=My Daemon
[Service]
Type=forking
ExecStart=/opt/myscript/daemonWrapper start
# ExecStop=/opt/myscript/daemonWrapper stop
[Install]
WantedBy=multi-user.target
我的问题是,只要我将 ExecStop 注释掉,它就运行得很好。如果我取消注释并启动守护进程,该服务会立即调用 ExecStop 并停止运行。如果有一个 ExecStop 就好了,因为我们正在运行的工具确实提供了一个停止命令来干净地退出。对我们来说这不是必需的,但我想保持一切干净,你知道吗?
我认为这是正确设置为分叉过程的,因为它基本上是一个包装脚本,在启动在后台运行的脚本之前设置一些必要的环境变量。我确实注意到大多数人使用不同的脚本来启动/停止守护进程,所以我想知道在这种情况下我这样做是否会出现一些奇怪的情况。我已经直接测试了“daemonWrapper”脚本(显然是假名称),它执行了启动/状态/停止所需的所有操作。
我缺少什么?