![오류 발생 시 바이너리를 다시 시작하기 위한 Bash 스크립트](https://linux55.com/image/96790/%EC%98%A4%EB%A5%98%20%EB%B0%9C%EC%83%9D%20%EC%8B%9C%20%EB%B0%94%EC%9D%B4%EB%84%88%EB%A6%AC%EB%A5%BC%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%9C%20Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.png)
나는 항상 실행되어야 하는 작은 서비스를 Go로 작성했습니다. 하지만 버그가 가득하고 때로는 충돌이 발생합니다. 그래도 오류가 발생하면 다시 시작하고 오류를 파일에 기록하고 싶습니다. 이렇게 실행하면 가능할 것 같아요
screen -d -m "./my_compiled_binary 2> on_error.sh"
하지만 확실하지 않습니다. 그 안에 무엇이 들어있을까요 on_error.sh
?
답변1
> outputfile
명령 출력을 파일로 리디렉션 하고 오류 출력을 2> errorfile
리디렉션합니다 . 다음을 참조하세요.stderr
http://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