私はchild_process.exec
/child_process.spawn
を使って新しいプロセスをforkし、child.kill
/process.kill
を使ってkillしました。それは、cat
/ls
のような単純なバイナリ実行ファイルでうまく動作し、子プロセスはちょうど殺されます。Node.JSで子プロセスがkillされない
しかし、ときスクリプト(たとえばP1)そのフォーク別の子プロセス(例えばP2)に取得するには、唯一のスクリプトインタプリタP1が殺さなく、子プロセスP2。
質問:このような子プロセスP2をNode.JSで取得する方法はありますか?
コードrun_and_kill('firefox')
でOK run_and_kill('ls -Al /usr/lib')
で正常に動作しますが、ない:
function run_and_kill(cmd) {
var exec = require('child_process').exec,
ls = exec(cmd);
console.log('Child process started: %d', ls.pid);
ls.on('exit', function(code, signal) {
console.log('exit with code %s and signal %s', code, signal);
});
ls.kill();
}
あなたは手動でそれらをkillしようとすることができます(おそらくP2はSIGHUPを無視します)。 - http://stackoverflow.com/questions/392022/best-way-to-kill-all-child-processes –
@AndreySidorov /そのPIDを知っていますか? – Ghostoy
あなたはそれを知っています - 'ls.pid'(https://github.com/joyent/node/blob/master/lib/child_process.js#L250) –