到目前为止我的配置是:
[Path]
PathExists=/tmp/foo.path
[Install]
WantedBy=multi.user.target
Run Code Online (Sandbox Code Playgroud)
[Unit]
Description=Matt Test
BindsTo=foo.path
[Service]
ExecStart=/bin/sh /home/mpekar/bin/foo.sh
PIDFile=/run/foo.pid
Run Code Online (Sandbox Code Playgroud)
这在启动时工作正常,但在删除 /tmp/foo.path 时 foo.service 不会被终止。有什么方法可以让 systemd 做到这一点,还是它不是适合这项工作的工具?
我会尝试这个。使用 PathChanged 创建附加服务:
foo-stop.path
[Path]
PathChanged=/tmp/foo.path
[Install]
WantedBy=multi.user.target
Run Code Online (Sandbox Code Playgroud)
然后创建:foo-stop.service
让其“ExecStart”脚本检查是否/tmp/foo.path已被删除(因为 PathChanged 也可能会触发其他更改)。如果路径已被删除,请让脚本调用/bin/systemctl stop foo.
| 归档时间: |
|
| 查看次数: |
2709 次 |
| 最近记录: |