스크립트 내에서 종료 신호/메시지/이유를 어떻게 얻나요?

스크립트 내에서 종료 신호/메시지/이유를 어떻게 얻나요?

나는 다음 트랩을 사용하고 있습니다 :

trap OnExit EXIT

그리고 내 OnExit기능에서는 발생한 일에 대해 가능한 모든 정보를 캡처하여 로그 파일에 기록하고 싶습니다. 누가, 왜, 어떻게, 언제 등을 알고 싶습니다.

이것이 가능합니까?

답변1

1. 누구- 다른 사용자가 귀하의 프로세스에 신호를 보낼 수 없으므로 프로세스 소유자 사용자일 가능성이 가장 높습니다(루트 사용자는 여전히 가능하지만 루트가 귀하의 프로세스를 종료하는지 알아내는 방법을 모르겠습니다).

2. 왜- 어쩌면 다음과 같을 수도 있습니다.

echo "Why did you interrupted the process?" && read why && echo $why > log

(이유가 무엇을 의미하는지 잘 모르겠습니다).

3. 어떻게Ctrl + C- BASH는 사용자가 누르 거나 를 통해 인터럽트를 보내는 경우 동일한 신호를 수신하므로 killAFAIK는 인터럽트가 정확히 어떻게 발생했는지 알아내는 것이 불가능합니다.

4. 언제- 쉽습니다. 다음 date명령을 사용하세요.

date > log

편집하다:"이유"와 "방법"에서 신호 유형을 결정하려는 경우 다음을 참조하세요.이것StackOverflow에 대한 Q&A입니다.

관련 정보