나는 다음 트랩을 사용하고 있습니다 :
trap OnExit EXIT
내 OnExit
기능에서는 발생한 일에 대한 모든 정보를 캡처하여 로그 파일에 기록하고 싶습니다. 누가, 왜, 어떻게, 언제 등을 알고 싶습니다.
이것이 가능한가?
답변1
1. 누구- 다른 사용자가 귀하의 프로세스에 신호를 보낼 수 없으므로 프로세스 소유자 사용자일 가능성이 높습니다(루트는 여전히 가능하지만 루트가 귀하의 프로세스를 죽였는지 확인하는 방법을 모르겠습니다).
2. 왜- 어쩌면 다음과 같을 수도 있습니다.
echo "Why did you interrupted the process?" && read why && echo $why > log
(왜 말씀하시는지 잘 모르겠습니다).
3.어떻게- Ctrl + C
BASH는 사용자가 누르거나 전송을 통해 중단하는 경우에도 동일한 신호를 수신하므로, kill
제가 아는 한 중단이 정확히 어떻게 발생하는지 알아내는 것은 불가능합니다.
4. 언제- 쉽습니다. date
다음 명령을 사용하세요.
date > log
편집하다:"이유" 및 "방법"에서 신호 유형을 결정하는 것을 의미하는 경우 다음을 참조하세요.이것StackOverflow에 대한 Q&A입니다.