$$
특수 변수가 쉘의 프로세스 번호를 보유하고 있다는 것을 알게 된 후 간단히 쉘을 종료하려고 시도했지만 kill <pid obtained by echo $$>
작동하지 않았습니다. 또한 몇 가지 변형을 시도했지만 효과가 없었습니다.
답변1
Bash 매뉴얼을 확인하세요:
Bash가 대화형일 때 트랩 없이 SIGTERM을 무시합니다.
https://www.gnu.org/software/bash/manual/bashref.html#Signals
kill
도움말 텍스트를 확인하세요 ( help kill
bash 프롬프트에서):
SIGSPEC와 SIGNUM이 모두 없으면 SIGTERM으로 간주됩니다.
https://www.gnu.org/software/bash/manual/bashref.html#index-kill
답변2
당신은 할 수 있지만, 그것이 필요한지 절대적으로 확신하지 않는 한 껍질은 죽지 않으려고 노력할 것입니다.
SIGHUP이 작동합니다(SIGKILL과 동일). 다음을 시도해 볼 수 있습니다.
kill -HUP $$
( 원하는 경우 HUP
이를 숫자 신호 식별자로 바꿀 수 있습니다 1
.)
이것이 작동하는 이유 SIGHUP
는 모뎀의 직렬 회선 연결이 종료될 때(예: 전화선이 끊어지는 경우) 전송되는 신호이기 때문입니다.