2016-08-14 5 views
0

많은 문제가 발생합니다. 내 자식 프로세스를 파괴하지 않고 모든 자식 프로세스를 종료하거나 일부 그룹의 모든 프로세스를 종료하거나 얻으려고합니다. 모든 어린이가 사용하지 않고 PID ... 그리고이 모든 것을 처리 중 파이썬 사람의 subprocess 또는 psutil 라이브러리는 당신이 정말로 이러한 라이브러리에 액세스 할 수없는 경우 밀어 쑤셔 넣어 오면, 당신은 os을 사용하는 방법을자식 프로세스를 죽이고 psutil 또는 하위 프로세스없이 자식 프로세스를 가져 오는 중

+0

하위 프로세스는 어떻게 시작합니까? 여러분은 항상 목록에서 그것들을 추적 할 수 있고'process.terminate()'또는 유사한 것을 호출하여 그들을 죽일 수있다. 낮은 수준의 API는 ['os.kill'] (https://docs.python.org/2/library/os.html#os.kill)을 사용하는 것이지만,이를 위해서는 pid와 AFAIK 표준 라이브러리를 알아야합니다 pid로 프로세스를 검색 할 수있는 기능을 포함하지 않습니다. 그래서 psutil을 사용하고 싶지 않다면, 여러분은 항상 자신의 부분을 다시 구현할 수 있습니다 ... – Bakuriu

+0

왜 가장 잘 작동하는 패키지의 사용을 빼앗 으려고합니까? –

+0

@ Jean-FrançoisFabre 환경에 대한 제 작품에서는 사용할 수 없습니다. 설치할 수 없다는 측면에서가 아니라,이 라이브러리를 사용하는 것이 금지되어 있습니다. 실제로 설명 할 수는 없지만 어쨌든 제가 어떻게 사용하는지 배우고 싶습니다. 그 라이브러리없이 끝났어요. 더 많은 학습 프로젝트입니다. –

답변

1

어떤 생각을 가지고있다. 예를 들어
:

my_pid = os.popen('ps --no-headers -C name_of_process').read(5) 
if my_pid != "": 
    my_pid = int(my_pid) 
    os.kill(my_pid, signal.SIGTERM) 

'name_of_process'당신은 또한 명령 pspkill에서 더 볼 수도 있습니다 실행 파일
의 이름이됩니다.
참고 : Linux OS를 사용하고 있다고 가정합니다.