我有一个简单的systemd
服务单元,可以在服务定义中定义的python
无条件退出时重新启动我的脚本。Restart=always
我只想确保即使脚本以某种方式挂起,我也可以通过启用WatchdogSec=
单元文件中的变量来重新启动它。
我的问题是systemd 期刊的官方文档没有解释清楚。
引用同一页面,
WatchdogSec=
配置服务的看门狗超时。启动完成后,看门狗被激活。该服务必须
sd_notify(3)
定期调用"WATCHDOG=1"
(即“keep-alive ping”)。
尚不清楚的部分是,服务本身是否会使用看门狗服务(或)它正在运行的应用程序(在我的情况下 - Python 脚本)维护 ping,需要通过更新提到的环境变量来维护 ping。
我的简单服务定义
[Unit]
Description=dev-Status: Computes RF device availability status
[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/db_EndPoint
ExecStart=/usr/bin/python /opt/foobar/foobar.py
RestartSec=10
Restart=always
[Install]
WantedBy=default.target
因此,如果我只添加以下行,它会自动重新启动我的脚本吗?
WatchdogSec=30s
要“拍”或 ping 看门狗,您可以使用 python systemd包发送通知: