使用pid监听进程的事件

时间:2016-11-25 07:09:14

标签: javascript node.js pid child-process forever-monitor

想一下创建&的管理员应用程序管理儿童应用程序。

我正在生成另一个child_process(使用childProcess.spawn('node', 'somefile.js'))。而且,我能够在childProcess上设置事件监听器(例如,exit),以便我可以记录输出和输出。会知道儿童app退出。

但是当管理员应用程序重新启动时,我想再次监听子进程上的事件,以便adminapp知道子应用程序崩溃了。

但是child_process模块没有任何方法可以通过' pid '来获取childProcess实例。 (或其他一些机制)。

有人可以指点如何做到这一点吗?我们可以使用forever-monitorpm2-api吗?

执行此操作

更新: 代码I产生子进程:

let userWorkProcess = childProcess.spawn('node', [ 'someapp.js' ],
    {
        detached: true, 
        stdio: [ 'ignore', logFile, logFile ], 
        cwd: __dirname + '/someapp'
    }
);
userWorkProcess.unref();
userWorkProcess.on('exit', function () {
    if (userWorkProcess.exitCode !== 0) {
        // child process exited with some error
    } else {
        // child process exited without any error
    }
});

更新#2

我们可以连接到流程吗?例如,我在forever-monitor中看到了类似的代码。是否可以使用socket / nssocket?

https://github.com/foreverjs/forever/blob/master/lib/forever.js#L199 https://github.com/foreverjs/forever/blob/master/lib/forever.js#L229

0 个答案:

没有答案