bash에서 신호 처리를 설명하는 샘플 코드를 이해하려고합니다. 예제 32-7의 http://tldp.org/LDP/abs/html/debugging.html에서 작성자의 주석은 그가 SIGINT를 캡처하고 있지만 트랩은 EXIT를위한 것이라고 설명합니다.백그라운드 프로세스에서 SIGINT 트래핑
{ trap "exit" SIGUSR1 sleep $interval; sleep $interval while true; do ... done; } & # Start a progress bar as a background process. pid=$! trap "echo !; kill -USR1 $pid; wait $pid" EXIT # To handle ^C.
이유 EXIT의 트랩은 SIGINT CTL (-C)에 대한 배경 처리로 정확한 신호 (SIGUSR1)를 전송 하는가?
이 기능이 왜 효과가 있는지에 대한 도움을 주시면 감사하겠습니다.
아니요, 프로세스가'exit (2)'자체를 호출 할 때만입니다 (스크립트의 끝이나 명시 적 'exit' 명령). – fge
맞아,이 스크립트는 제대로 처리하기 위해'trap 'exit 127'2 15'와 같은 것이 있어야합니다. – tripleee
아. 알았다. 추가 테스트를 한 후 키보드 인터럽트에서 INT 트랩이 수행 된 후 EXIT 트랩이 발생했음을 알았습니다. – user1131035