프로그램 종료를 포착할 수 없습니다.

프로그램 종료를 포착할 수 없습니다.

Node.js로 작성된 프로그램을 실행하고 실행 파이프라인을 사용하여 이를 로그 파일로 실행하고 백그라운드로 보냅니다.

프로그램이 중간에 종료되고 콘솔이나 로그에 오류가 없습니다. /var/log/message도 확인했지만 프로그램에 어떤 문제가 있는지 알 수 없습니다.

종료를 유발하는 오류/메시지를 캡처하는 더 좋은 방법이 있습니까?

현재 실행되는 bash 스크립트는 다음과 같습니다.

./run_all_with_logs >> logs/my.log &

답변1

종료 코드는 프로세스가 외부 신호에 의해 종료되었는지 아니면 (유용할 것으로 예상되는) 내부 종료 코드로 자체적으로 종료되었는지 알려줍니다.

종료 코드를 포함하도록 명령줄을 약간 확장할 수 있습니다(이 종료 코드를 디코딩하려면 다른 질문 참조).

(./run_all_with_logs ; echo "Final Exit Code: $?" ) >> logs/my.log &

좀 더 멋지게 만들 수 있습니다(종료 상태 디코딩 등).

답변2

PT:의 답변을 조금 더 향상시켜 보겠습니다.

기본 양식은 모든 일반 출력을 로그 파일로 보냅니다.

./run_all_with_logs >> logs/my.log &

오류를 리디렉션하면 오류를 기록하고 일반 출력을 인쇄할 수 있습니다.

./run_all_with_logs 2>&1 >> logs/my.log &

그런 다음 서브셸에서 명령을 실행하면 종료 코드도 인쇄할 수 있습니다.

(./run_all_with_logs ; echo "Final Exit Code: $?" ) 2>&1  >> logs/my.log &

관련 정보