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 &