我使用以下配置来启动beanstalkd
进程
[Service]
ExecStart=/usr/local/bin/beanstalkd
ExecStartPost=pgrep beanstalkd > /var/run/beanstalkd.pid
Run Code Online (Sandbox Code Playgroud)
最后一行应该在启动进程后生成一个 pidfile,但未创建该文件。为什么 ?
还是有另一种方法可以强制创建 pidfile systemd
?
小智 9
对于 Type=simple 服务,systemd 不需要 pidfile。它将在前台管理守护进程。systemctl status SERVICE_NAME
将显示主进程(以及 cgroup 中的任何其他进程)的 pid。
为了完整起见,您的 ExecStartPost 行不起作用,因为 systemd 不使用 shell 来执行命令并且不执行 $PATH 查找,因此您必须使用ExecStartPost=/bin/sh -c "..."
,但正如我所说,该行是不必要的。
归档时间: |
|
查看次数: |
20239 次 |
最近记录: |