계속 재시작하는 프로세스 종료


16

'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위의 표에서 언급 한 것과 같습니다. 이것들을 갑자기 죽이는 것이 안전한지 잘 모르겠습니다. 또한 이것은 공유 우분투 서버입니다.


죽어가는 것 같아요 귀하의 lsof출력을 보여줍니다 새로운 매 시간 PID. 프로세스는 단순히 다시 시작됩니다.
Patrick

예, 영원히 죽고 싶지 않습니다. 죽지 않은 것처럼
Lakshminarayanan Guptha

답변:


26

다른 프로세스 ID로 자동 시작 한다는 것은 다른 프로세스 임을 의미합니다. 따라서 자식 프로세스를 모니터링하는 부모 프로세스가 있으며, 하나가 죽으면 부모 프로세스가 다시 생성됩니다. 서비스를 완전히 중지하려면 상위 프로세스를 중지하는 방법을 찾으십시오. 그것을 죽이는 SIGKILL옵션 코스 하나이지만, 아마 하나를 마우스 오른쪽 TM , 서비스 모니터가 제대로 종료 몇 가지 정리 작업을 수행해야 할 수도 있기 때문이다.

모니터 프로세스를 찾으려면 실제 리스너가 상위 (일반적으로 fork() + setsid()콤보에 의해)에서 분리 될 수 있으므로 전체 프로세스 목록을 검사해야합니다 . 이 경우 출력이 ps faux( procps적어도 다른 구현에 따라 다를 수 있음) 다소 편리 하다는 것을 알았 습니다. 모든 프로세스를 계층 트리로 나열합니다. PID 랩 이없는 경우 ( wikipedia 참조 ) 모니터 PID는 리스너의 PID보다 작아야합니다 (물론 PID 랩 어라운드를 누르지 않는 한).


부모는 sh의 부모입니다 sudo. 그들을 죽일 수 있습니까?
Lakshminarayanan Guptha

어느 과정의 부모? 포트 3002에서 수신 대기하는 것? 이 경우 모든 프로세스를 나열하고 어느 프로세스가 모니터인지 추측하십시오. linux를 사용하면 procps일반적으로 ps -faux충분한 정보를 얻을 수 있습니다. 또한 모니터의 PID는 실제 리스너의 PID보다 작아야합니다 (서비스를 시작한 후 시스템이 일정 시간 동안 가동되고 PID가 이미 랩핑되지 않은 경우).
peterph

큰. ps -faux부모에게서 죽이기 시작했습니다. 의견의 해결책으로 답변을 업데이트 할 수 있습니까?
Lakshminarayanan Guptha

그래, 난 ... :) 그것에 대해 생각
peterph

ps faux감지하는 데 도움이 supervisord끝없이 큐 데몬 Laravel 교수형 재시작 가능하는
antongorodezkiy

4

프로세스의 수신 포트를 알고 있으면 플래그 fuser와 함께 사용할 수 있습니다 -k.

같은 것

fuser -k 3002/tcp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.