읽기로 루프 동안 bash 무한 중단

읽기로 루프 동안 bash 무한 중단

분명히 이것은 재부팅을 제외하고는 시스템 제어가 복원되지 않도록 하는 방식으로 실행되는 일련의 bash 명령을 생성하려는 시도에서 비롯된 인위적인 예입니다.

기본적으로 이것이 부팅 후 첫 번째 실행이라고 가정할 때 이 명령 상태에서 벗어날 수 있는 방법이 있는지 궁금합니다. 질문을 일반화하면 장치를 물리적으로 끄지 않고 실행 중인 명령을 종료할 수 있는 차단할 수 없는 방법이 있습니까?

while trap '' 2; do read; done;

편집: 명확히 하기 위해 명령을 실행한 동일한 사용자가 동일한 셸 내에서 작업을 수행할 수 있는지/물리적 키보드 이외의 다른 방법을 통해 상자에 액세스할 수 없다고 가정하고 이것이 가장 먼저 실행된 것입니다. 신병.

답변1

SIGTERM 또는 SIGKILL을 kill -5 <PID>또는 를 통해 전송하면 kill -9 <PID>프로세스가 종료됩니다.

$ cat your_command.sh
while trap '' 2; do read; done;
$ sh your_command.sh
$ ps a | grep 'your_command.sh'
3051 pts/1    S+     0:00 sh your_command.sh
$ kill -5 3051

사용자가 시스템에 완전히 액세스할 수 없는 상황에서도 다음을 사용할 수 있습니다.매직 SysRq 키이를 통해 낮은 수준의 명령을 커널에 직접 보내고 PID 1을 제외한 모든 프로세스를 종료하는 등의 작업을 수행할 수 있습니다.

관련 정보