2017-11-25 1 views
0

단말기에서 CTRLC-C를 누르지 않고 종료되지 않는 두 개의 바이너리가 있습니다. 서브 프로세스 호출로 이러한 바이너리를 호출합니다. 그러나 나는 어느 정도 시간이 지나면 그들을 종결 짓고 싶다. 내가 시도한 것은 다음과 같습니다.시간이 지나면 서브 프로세스가 종료됩니다.

cmd_1 = [**SOME COMMANDS**] 
    cmd_2 = [**SOME COMMANDS**] 
    commands = [cmd_1, cmd_2] 
    procs = [Popen(i) for i in commands] 
    for p in procs: 
     time.sleep(60) 
     p.kill(); 

그러나 60 초 후에도 프로세스가 계속 실행 중입니다. 어느 정도 시간이 지나면 어떻게 종료시킬 수 있습니까?

+0

BTW 나는 'Popen' 호출에'timeout '이 없음을 알았 기 때문에 제 대답을 삭제했습니다. –

답변

3

첫번째 프로세스는 120 time.sleep (60) 후, 60 초 후에 제 의지를 살해한다

cmd_1 = [**SOME COMMANDS**] 
cmd_2 = [**SOME COMMANDS**] 
commands = [cmd_1, cmd_2] 
procs = [Popen(i) for i in commands] 
time.sleep(60) 
for p in procs: 
    p.kill() 

그러나 루프 외측에 있어야, 그 **SOME COMMANDS** 될 수 있음을 주목할 필요가있다 추가 문제가 발생했습니다

관련 문제