분명히 이것은 재부팅을 제외하고는 시스템 제어가 복원되지 않도록 하는 방식으로 실행되는 일련의 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을 제외한 모든 프로세스를 종료하는 등의 작업을 수행할 수 있습니다.