![스크립트에서 종료 신호/메시지/이유를 얻는 방법은 무엇입니까?](https://linux55.com/image/38872/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%EC%A2%85%EB%A3%8C%20%EC%8B%A0%ED%98%B8%2F%EB%A9%94%EC%8B%9C%EC%A7%80%2F%EC%9D%B4%EC%9C%A0%EB%A5%BC%20%EC%96%BB%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 다음 트랩을 사용하고 있습니다 :
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입니다.