이 bash 스크립트가 있습니다. https://gist.github.com/ORESoftware/06dbb26a48d2ddf48a5a2166834e0836
ql_acquire_lock
쉘을 호출할 때 mkdir
디렉토리를 호출할 수 있으면 잠금을 획득합니다. 내가 그것을 호출하면 ql_release_lock
디렉토리, 간단한 내용이 삭제됩니다.
이제 ql_acquire_lock
호출되면 다음이 호출됩니다.
트랩 ql_on_trap 종료 트랩 ql_on_trap SIGHUP 트랩 ql_on_trap 0
이론적으로 이러한 신호 중 하나라도 수신되면 다음과 같이 ql_release_lock
호출됩니다.
이것질문이 있어요문제는 터미널 창을 닫을 때 스크립트가 SIGHUP 또는 0 신호를 포착하지 못한다는 것입니다. my는 사용자가 SIGINT를 발행할 때 호출되며, trap
가장 확실하게는 EXIT를 통해 호출됩니다. 그러나 사용자가 터미널 창(SIGHUP을 보내야 한다고 생각함)을 닫으면 내 스크립트가 trap
신호를 포착하지 못합니다. 왜 이런 일이 일어나는지 아는 사람이 있나요?