계속 다시 시작되는 프로세스 종료

계속 다시 시작되는 프로세스 종료

"kill -9"가 작동하지 않으면 어떻게 되나요?또는새 프로세스를 시작하는 스크립트를 종료하는 방법은 무엇입니까?어쨌든 나에게 도움이되지 않습니다.

파이썬 스크립트가 있습니다다른 프로세스 ID를 사용하여 자동으로 시작동일한 포트를 사용하세요죽었을 때사용 sudo kill -9 <pid>.

$ lsof -i :3002
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  13242 ubuntu    3u  IPv4  64592      0t0  TCP localhost:3002 (LISTEN)
$ sudo kill -9 13242
$ lsof -i :3002
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  16106 ubuntu    3u  IPv4  74792      0t0  TCP localhost:3002 (LISTEN)
$ sudo kill 16106
$ lsof -i :3002
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  16294 ubuntu    3u  IPv4  75677      0t0  TCP localhost:3002 (LISTEN)

이것은 좀비 프로세스가 아닙니다.

$ ps -Al

4 S     0 16289     1  0  80   0 - 12901 poll_s ?        00:00:00 sudo
4 S  1000 16293 16289  0  80   0 -  1100 wait   ?        00:00:00 sh
0 S  1000 16294 16293  0  80   0 - 34632 poll_s ?        00:00:00 python

시도해 보았지만 sudo pkill -f <processname>운이 없었습니다. 그것은 죽기를 원하지 않습니다.

고쳐 쓰다:

해당 상위 프로세스는 sh위 표에 언급된 상위 프로세스입니다. sudo갑자기 그들을 죽이는 것이 안전할지 모르겠습니다. 이것은 또한 공유 우분투 서버입니다.

답변1

자동 시작다른 프로세스 ID즉, 다른 프로세스라는 뜻입니다. 따라서 하위 프로세스를 모니터링하는 상위 프로세스가 있으며, 프로세스 중 하나가 종료되면 상위 프로세스에 의해 부활됩니다. 서비스를 완전히 중지하려면 상위 프로세스를 중지하는 방법을 알아보세요. Kill 사용하기 확실히 옵션 중 하나이지만 서비스 모니터를 제대로 종료하려면 정리가 필요할 수 있으므로 SIGKILLRight One TM 은 아닐 수도 있습니다.

모니터 프로세스를 찾으려면 전체 프로세스 목록을 확인해야 할 수 있습니다. 실제 리스너가 해당 프로세스를 상위 프로세스에서 분리했을 수 있기 때문입니다(보통 을 결합하여 fork() + setsid()). 이 경우 ps faux내가 찾은 출력(적어도 다른 구현에 따라 다를 수 있음)은 procps매우 편리합니다. 계층 트리의 모든 프로세스를 나열합니다. 이미 존재하지 않는 이상PID 패키지(당신은 또한 볼 수 있습니다위키피디아), 모니터 PID는 청취자의 PID보다 작아야 합니다(물론 PID 랩어라운드가 발생하지 않는 한).

답변2

프로세스의 수신 대기 포트를 알고 있으면 fuserwith -k플래그를 사용할 수 있습니다.

그것은 마치,

fuser -k 3002/tcp

관련 정보