有没有一个可以永远工作的linux命令:如果它退出时出现错误代码,请重新启动我的程序

有没有一个可以永远工作的linux命令:如果它退出时出现错误代码,请重新启动我的程序

我有一个程序必须永远工作直到kill -HUP 命令。但有时该程序可能会退出并显示错误代码,或者可能因过度使用内存而被操作系统杀死。

是否有任何标准的linux命令可以监视任何命令并在退出时重新启动它们?

像这样的东西:forever my-command -with some parameters

可以通过 bash 脚本完成:

#!/bin/bash

while true
do
  my-command -with some parameters
done

,但我最好使用标准的东西,而不是编写自己的脚本。

答案1

这是一个 SystemD 单元文件,它将重新启动该命令,直到被SIGHUP.如果允许程序以成功退出代码退出,则使用Restart=on-failure

[Unit]
Description=A program

[Service]
Type=simple
ExecStart=/path/to/my-command -with some parameters
Restart=always
# Restart=on-failure
RestartPreventExitStatus=SIGHUP

相关内容