1. ホーム
  2. node.js

[解決済み] nodejsでchildprocessをkillする方法は?

2023-03-16 11:29:19

質問

shelljsを使用して子プロセスを作成しました。

!/usr/bin/env node

require('/usr/local/lib/node_modules/shelljs/global');
   fs = require("fs");  
   var child=exec("sudo mongod &",{async:true,silent:true});

   function on_exit(){
        console.log('Process Exit');
        child.kill("SIGINT");
        process.exit(0)
    }

    process.on('SIGINT',on_exit);
    process.on('exit',on_exit);

子プロセスはまだ実行中です...親プロセスを終了した後

どのように解決するのですか?

もし、nodeに組み込まれている child_process.spawn を送信することができます。 SIGINT シグナルを子プロセスに送ることができます。

var proc = require('child_process').spawn('mongod');
proc.kill('SIGINT');

これの利点は、すべての子プロセスが終了するまでメインプロセスがぶらぶらすることです。