쉘(예: Bash)에서 가장 최근에 완료된 애플리케이션이 수신한 신호 번호(있는 경우)를 인쇄하여 프로세스의 반환 코드를 확인하는 것과 유사한 방식으로 검색할 수 있습니까 $?
?
답변1
프로세스가 종료되면 해당 프로세스를 종료한 신호는 상위 프로세스(또는 하위 수확기 또는 고아 프로세스) init
가 검색한 종료 상태로 인코딩됩니다.
에서는 128+ bash
signum $?
입니다.
이것이 대부분의 Bourne 유사 쉘이 수행하는 작업입니다. ksh93은 256+signum을 사용하고 yash는 384+signum을 사용합니다.
$?
129
두 상태 중 하나 에 있다는 bash
것은 프로세스가 신호 1(SIGHUP)에 의해 종료되었거나 실행되었음을 의미합니다 exit(129)
. 그러나 만약 그렇다면 exit(129)
프로세스 종료가 SIGHUP을 통해 보고되었을 가능성이 높습니다.
값에서 신호 이름을 얻으려면 다음을 $?
실행하십시오.
kill -l "$?"
이는 128/256/384+ 표기법 사용 여부에 관계없이 모든 Bourne 유사 쉘에 적용됩니다.
자세한 내용은 다음을 참조하세요.프로세스 종료 시 기본 종료 코드는 무엇입니까?