エラー発生時にバイナリを再起動するためのBashスクリプト

エラー発生時にバイナリを再起動するためのBashスクリプト

私はいつも実行する必要がある小さなサービスをGoとして書いています。しかし、バグがいっぱいで、時にはクラッシュが発生します。それでもエラーが発生した場合は、再起動してエラーをファイルに記録したいと思います。このように実行すれば可能だと思います。

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

しかし、わかりません。その中に何が含まれていますかon_error.sh

答え1

> outputfileコマンド出力をファイルにリダイレクトし、エラー出力を2> errorfileリダイレクトします。以下を参照してください。stderrhttp://mywiki.wooledge.org/BashGuide/InputAndOutput#File_Redirection

おそらくあなたが望むものは次のようなループです:

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

これにより、1秒後にプログラムが(無条件に)再起動され、エラー出力がファイルにリダイレクトされます(個別ではなくファイルにerrorlog追加されます)。望むより:>>>http://mywiki.wooledge.org/BashGuide/TestsAndConditionals

関連情報