当不再生成输出时,重新启动systemd服务

鲍勃·范·德·维伊维尔(Bob Van de Vijver)

在预定义的时间内没有生成输出时,是否可以重新启动systemd服务?

我有一个显然可以挂起的脚本,但是systemd(或Python)无法检测到该脚本,因此它不会进入失败状态。

但是,它确实停止记录输出,因此在一分钟内未给出任何输出后,我应该能够重新启动服务。systemd有可能吗?

我当前的systemd文件:

[Unit]
Description=SOmething
After=network.target

[Service]
WorkingDirectory=/home/user/system/something
User=nobody
ExecStart=/usr/bin/python2 something.py
Restart=on-watchdog
RestartSec=10s

[Install]
WantedBy=multi-user.target
马修·布里顿(Mathieu Bridon)

我不认为systemd允许您这样做,至少systemd.service(5)手册页面似乎没有提到类似的内容。

但是,您可以做的是使用systemd的内置看门狗。

你会做到这一点的设置WatchdogSec=,然后有把你的服务WATCHDOG=1sd_notify定期。如果设置,WatchdogSec=30则您的服务必须最多每30秒通知系统一次。

当您的服务挂起时,它将不再通知systemd,因此systemd将终止您的服务。

使用restart=on-watchdog(您已经拥有,但是如果没有它就什么也不能做WatchdogSec=),然后systemd在被看门狗杀死后,将重新启动您的服务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

启动或重新启动服务时,systemd挂起

在依赖项失败时重新启动systemd服务

如何仅在失败时重新启动 Systemd 服务?

如何在恢复时重新启动systemd服务

重新启动与正常重新启动服务时,systemd是否具有不同的超时设置?

当我的服务器服务在 systemd 中重新启动时如何重新启动蓝牙服务

启动systemd服务,然后在重新启动时将其停止

设置systemd服务以在重新启动时运行屏幕时出现问题

仅在关机时不重新启动时在systemd服务上运行脚本

如何在使用systemd重新启动时禁用CUPS服务?

监视/失败时重新启动服务

重新启动 TFTP 服务时出错

在某些日志输出上重新启动 systemd 单元

如何配置systemd服务以定期重新启动?

停机时如何使用Systemd重新启动服务?

Systemd,IP地址更改时重新启动服务

如何用salt重新启动systemd服务?

仅以特定用户身份重新启动systemd服务?

重新启动后如何使systemd服务自动运行?

从 cron 中重新启动 systemd 用户服务

挂起前停止systemd服务,恢复后重新启动

仅当崩溃后,systemd自动重新启动服务

使用Cron重新启动systemd用户服务

重新启动时启动gpsd服务

每当特定的systemd服务重新启动时,如何触发自定义脚本运行

使用Ansible更改服务文件时重新启动服务

如何在每次重新启动时重新启动服务?

在系统重新启动时重新启动我的 Web 服务器

重新启动网络服务时出现问题