如何在仅根据某些信号崩溃时使用sytemd重新启动服务

时间:2017-05-02 07:12:07

标签: linux service monitor systemd

基本上,我只想使用systemd

实现与init.d< strong> monitor 相同的功能。

我有一个作为守护进程运行的服务。如果该服务由于某种原因而崩溃,我想使用 systemd重新启动它。

当我查看与此相关的其他问题和答案时,我发现我们可以在该服务单元中添加以下内容。

Restart=always
RestartSec=0

但只有当我们发生崩溃时才会重新启动吗?或者即使被杀了?

是否有基于 SIGTERM,SIGINT或SIGHUP 等某些信号重新启动它?

2 个答案:

答案 0 :(得分:1)

根据标准文档,退出,终止和超时时会发生服务重启的条件。所以,你的问题得到了回答。当它崩溃时,它会退出,当它被杀死时,是的,它会重新启动。

  

Restart =配置服务是否应重新启动   服务进程退出,被杀死或达到超时....

请点击此处了解更多信息和详情(https://www.freedesktop.org/software/systemd/man/systemd.service.html

关于发送信号,该过程遵循其设计遵循的信号处理程序。

这与systemd控制器和效果无关。只需考虑一下,当您发送信号时,您实际上会将其发送给流程本身。它根本没有到达systemd进程。

答案 1 :(得分:0)

重启是重启。这很容易。

如果您不想重新启动,则有systemctl stop foo.service