如何检测节点生成的进程是否仍然是 运行?

How to detect if a Node spawned process is still running?

我可以生成如下进程:

var spawn = require('child_process').spawn;

var topicListener = spawn('python', ['topic_listener.py','Node.js'], {env: {
    TWITTER_CONSUMER_SECRET: process.env.TWITTER_CONSUMER_SECRET,
    TWITTER_CONSUMER_KEY: process.env.TWITTER_CONSUMER_KEY,
    TWITTER_TOKEN_SECRET: process.env.TWITTER_TOKEN_SECRET,
    TWITTER_ACCESS_TOKEN: process.env.TWITTER_ACCESS_TOKEN
}});

topicListener.stdout.on('data', function (data) {
    console.log(data.toString());
});

topicListener.stderr.on('data', function (data) {
    console.log(data.toString());
});

topicListener.on('close', function (code) {
    console.log("EXITED " + code);
});

所以我当然可以用 .on(close, ...) 异步控制它,但是有没有其他方法可以控制进程是否仍然存在?

spawn('python', ['topic_listener.py','Node.js'].. Return 子进程对象。如果进程处于活动状态,请使用 topicListener.pid 查找与该进程关联的唯一 ID。

topicListener.on('exit', function (code) { 
 topicListener = null;
 console.log("EXITED " + code);
});

如果topiclistener为null,进程就结束了