用于在错误时重新启动二进制文件的 Bash 脚本

用于在错误时重新启动二进制文件的 Bash 脚本

我用 Go 编写了一个小服务,它必须始终运行。但它充满了错误,有时会导致崩溃。尽管如此,我希望它在出现任何错误时重新启动并将错误记录到文件中。我认为可以通过像这样执行来完成

screen -d -m "./my_compiled_binary 2> on_error.sh"

但我不确定,里面必须有什么on_error.sh

答案1

> outputfile命令的输出重定向到文件,2> errorfileredirects stderr,错误输出,请参阅:http://mywiki.wooledge.org/BashGuide/InputAndOutput#File_Redirection

您可能想要的是一个循环,例如:

while true ; do 
    ./my_compiled_binary 2>> errorlog 
    sleep 1
done

这将(无条件)在一秒钟后重新启动程序,并将错误输出重定向到文件errorlog(附加到文件,因为>>而不是单个>)。看:http://mywiki.wooledge.org/BashGuide/TestsAndConditionals

相关内容