2016-12-08 1 views
0

nodejs에서 생성 된 프로세스가 옵션 shell:true과 함께 생성되어 프로세스가 실제 쉘에서 시작됩니다. 그래서 streamingTask.kill()으로이 프로세스를 죽이려고 할 때 작동하지 않습니다. 옵션이 없으면 shell:true 모든 것이 잘 동작합니다. nodejs는 실제 쉘에서 프로세스를 생성하고이 프로세스를 종료합니다.

var options = {shell:true}; 
streamingTask = spawn('gst-launch-1.0',args,options); 

... 

streamingTask.kill() 

가 어떻게 지금이 프로세스를 종료 할 수 있습니다

이 내 코드는 모습입니다?

+0

이 아닌'(1) streamingTask.exit겠습니까 :

쉽게 한 줄 솔루션을 제공 tree-kill라고 NPM에 패키지가있다? – jansmolders86

+0

아니요 프로세스가 아직 실행 중입니다 – Kingalione

+0

어쩌면 끝내야 할 수도 있습니다. 이것을 시도하십시오 :'setTimeout (function() {streamingTask.close();}, 2000); – jansmolders86

답변

2

쉘 (shell)에 의해 생성 된 하위 프로세스 (귀하의 경우 gst-launch-1.0)가 아닌 쉘 프로세스 자체를 종료하기 때문에 이것은 작동하지 않습니다. `트릭을 할;

var kill = require('tree-kill'); 
kill(streamingTask.pid); 
+0

왜 이렇게 복잡한가요? 이 동작이 기본 동작이 아니어야합니다> – cgatian

관련 문제