我想使用一个 .service 文件从不同的目录启动服务,但如果有一种方法可以自动停止任何具有不同实例名称(甚至相同)的正在运行的实例,或者至少防止启动一个第二审。
假设我有一个special_service@.service包含
WorkingDirectory=/var/special_service/%i
Run Code Online (Sandbox Code Playgroud)
然后调用systemctl start special_service@try_one,稍后我发出systemctl start special_service@try_two然后第二个实例应该要么无法以适当的消息开始,要么更好地停止special_service@try_one并开始special_service@try_two。
systemd 本身没有这样的可能性。您可以将二进制文件包装在创建/检测锁定文件的 shell 脚本中,并编写一个额外的 shell 脚本来删除它(以在 上运行ExecStopPost=)。
只需记住exec最后才是真正的二进制文件,以免留下额外的 bash 进程。
| 归档时间: |
|
| 查看次数: |
3104 次 |
| 最近记录: |