如何检测节点产生的进程是否仍在运行?
我可以产生一个像这样的过程:
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, ...)
来控制它.on(close, ...)
但是如果一个进程仍然存在,还有什么其他方法可以控制吗?
spawn('python', ['topic_listener.py','Node.js']..
返回Child process Object。使用topicListener.pid
查找与进程关联的唯一标识,如果它处于活动状态。
topicListener.on('exit', function (code) { topicListener = null; console.log("EXITED " + code); });
如果topiclistener为null,那么这个过程就不存在了
- 无法使用交互式脚本获取child_process.spawn的输出
- 如何在请求中使用child_process spawn的结果(获取ENOENT)
- 使用节点jsclosures.exe文件
- 分段错误(核心转储),通过产生的方式从NodeJS调用python脚本
- Node.js同步返回多个asynchronous收益的结果
- 为什么thunkify / yield总是返回一个数组?
- 为什么我通过spawn()挂起创build的Nodesubprocess?
- Nodejs总是不能完全捕获subprocess的stdout数据,除非subprocessfllush(stdout)
- 我怎样才能禁用nodejs ChildProcess.spawn标准输出缓冲区?