2016-12-08 7 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でしょう:

簡単に1行のソリューションを提供しtree-killと呼ばれるNPMのパッケージがありますか? – jansmolders86

+0

プロセスがまだ実行されていない場合 – Kingalione

+0

おそらくそれを終了する必要があります。これを試してみてください: 'setTimeout(function(){StreamingTask.close();}、2000);' – jansmolders86

答えて

2

これは、シェルプロセス(シェルの場合はgst-launch-1.0)が生成されたプロセスではなく、シェルプロセス自体を強制終了するため、機能しません。 `トリックを行う。

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

これはなぜとても複雑ですか?これはデフォルトの動作でなければならない> – cgatian

関連する問題