【问题标题】:How to restart a service using sytemd when it crashed based on only certain signals仅基于某些信号崩溃时如何使用 systemd 重新启动服务
【发布时间】:2017-09-29 15:19:33
【问题描述】:

基本上,我只是想使用systemd实现与init.d的monitor相同的功能

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

重新启动它

当我浏览了其他相关的问题和答案时,我发现我们可以在那个服务的单元中添加以下内容。

Restart=always
RestartSec=0

但是只有当我们发生崩溃时才会重新启动?还是就算被杀了?

是否有根据某些信号(如 SIGTERM、SIGINT 或 SIGHUP)重新启动它?

【问题讨论】:

标签: linux service monitor systemd


【解决方案1】:

根据标准文档,服务重启的条件发生在退出、终止和超时。所以,你的问题得到了回答。崩溃了就退出,杀了就重启。

Restart= 配置服务是否重启 服务进程退出,被杀死,或者超时....

查看此处了解更多信息和详细信息 (https://www.freedesktop.org/software/systemd/man/systemd.service.html)

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

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

【讨论】:

    【解决方案2】:

    重启就是重启。这很容易。

    如果您不想重新启动,可以使用 systemctl stop foo.service

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2017-08-11
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多