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