我有一个程序必须永远工作直到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