8

次のコード:

#!/usr/bin/env node
"use strict";

var child_process = require('child_process');

var x = child_process.spawn('sleep', [100],);

throw new Error("failure");

子プロセスを生成し、子プロセスが終了するのを待たずに終了します。

どうすれば待つことができますか?waitpid(2)を呼び出したいのですが、child_processにwaitpid(2)がないようです。

追加した:

申し訳ありませんが、私が本当に望んでいるのは、親が存在するときに子プロセスを待つのではなく、強制終了することです。

4

2 に答える 2

13
#!/usr/bin/env node
"use strict";

var child_process = require('child_process');

var x = child_process.spawn('sleep', [10]);

x.on('exit', function () {
    throw (new Error("failure"));
});

編集:

processメインのようにリスナーを追加することで、メインプロセスをリッスンできますprocess.on('exit', function () { x.kill() })

ただし、このようなエラーをスローするのは問題です。プロセスを閉じた方がよいでしょうprocess.exit()

#!/usr/bin/env node
"use strict";

var child_process = require('child_process');

var x = child_process.spawn('sleep', [100]);

process.on('exit', function () {
    x.kill();
});

process.exit(1);
于 2013-02-21T10:11:24.020 に答える