답변:
GDB 및 프로세스 ID를 사용하여 프로세스에 첨부 한 다음 인수로 call명령 을 발행 할 수 exit(0)있습니다.
call실행중인 프로그램 내에서 함수를 호출 할 수 있습니다. 호출 exit(0)은 리턴 코드 0으로 종료됩니다.
gdb -p <process name>
....
.... Gdb output clipped
(gdb) call exit(0)
Program exited normally.
한 줄 도구로 :
gdb --batch --eval-command 'call exit(0)' --pid <process id>
_exit시스템 호출 을 호출하도록 관련 레지스터를 수정하십시오 0. 그것은 단순히 CPU 사이클을 반복하고 태우는 것이 아닌 모든 프로세스에서 작동합니다. 프로세스가 무한 루프에 빠지지 않으면 실행 파일에서 필요한 명령을 찾아서 명령 포인터를 가리 키더라도 동일한 방법을 사용할 수 있습니다.
쉘이이를 잡을 SIGCHLD때 무조건 리턴 값을 0이 아닌 값으로 적절하게 설정하므로 스크립트 나 쉘을 수정해야합니다.
이 원 라이너는 나를 위해 일했습니다.
/bin/bash -c '/usr/bin/killall -q process_name; exit 0'
$ cat; echo $? Terminated 143.
No symbol table is loaded. Use the "file" command. 비록 가능성이 적습니다.