我正在使用一项服务,但它意外死亡(停止)。无论它如何停止,我都想让它自动重启!它已配置Restart=on-abort
且未重新启动。该服务不是我编写的,它来自另一个供应商,所以虽然我想追踪服务崩溃的根本原因,但我还需要一个解决方案来保持系统运行,直到找到根本原因。该服务每天死零到三次,所以不要太频繁。
该服务当前设置Restart=on-abort
为在服务文件中定义的/etc/systemd/system/someone-elses.service
那么是什么Restart=on-abort
意思呢?
我进行了搜索并了解了 restart= 的不同值的含义,但在手册页中一无所获:
systemd.service 可以配置为根据多个条件重新启动服务。 这个 systemctl 手册页很好地解释了这个答案中包含的原因和原因,所以这个答案可以独立存在。
的定义
Restart=on-abort
是 ,仅当服务进程由于未指定为干净退出状态的未捕获信号而退出时,服务才会重新启动。 这意味着除 SIGHUP、SIGINT、SIGTERM 或 SIGPIPE 之外的信号。systemctl 手册页将这 4 个信号描述为干净信号。就我而言,我实际上想要
Restart=always
,因为无论进程如何死亡或退出,我都希望它重新启动。该属性RestartSec=15s
对我来说很重要,因为我希望在重启之间有一些时间来防止不断重启(我不希望这种情况发生,但这就是我有这个设置的原因)。以下内容取自systemctl 手册页并针对 SO 进行了格式化:
下面将解释这些值中的每一个:
另请参阅这个精彩的答案! https://unix.stackexchange.com/a/507917/119816