如何检测节点生成的进程是否仍然是 运行?
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,进程就结束了
我可以生成如下进程:
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,进程就结束了