基本上,我只想使用systemd
实现与init.d< strong> monitor 相同的功能。我有一个作为守护进程运行的服务。如果该服务由于某种原因而崩溃,我想使用 systemd重新启动它。
当我查看与此相关的其他问题和答案时,我发现我们可以在该服务单元中添加以下内容。
Restart=always
RestartSec=0
但只有当我们发生崩溃时才会重新启动吗?或者即使被杀了?
是否有基于 SIGTERM,SIGINT或SIGHUP 等某些信号重新启动它?
答案 0 :(得分:1)
根据标准文档,退出,终止和超时时会发生服务重启的条件。所以,你的问题得到了回答。当它崩溃时,它会退出,当它被杀死时,是的,它会重新启动。
Restart =配置服务是否应重新启动 服务进程退出,被杀死或达到超时....
请点击此处了解更多信息和详情(https://www.freedesktop.org/software/systemd/man/systemd.service.html)
关于发送信号,该过程遵循其设计遵循的信号处理程序。
这与systemd控制器和效果无关。只需考虑一下,当您发送信号时,您实际上会将其发送给流程本身。它根本没有到达systemd进程。
答案 1 :(得分:0)
重启是重启。这很容易。
如果您不想重新启动,则有systemctl stop foo.service
。