在节点中重新启动生成的进程

时间:2014-04-16 21:57:41

标签: javascript node.js events

我有以下函数setInterval,它每秒都在一个循环上运行。我在startScript函数中有一个spawn进程,它启动了一个外部python脚本。循环第一次完美运行;但是,当它循环第二次时,startScript功能不会启动。为什么是这样?无论如何都要重新产生"这个过程?

请注意,脚本成功运行一次后,只需记录"关闭",表示脚本已关闭。

var spawn = require('child_process').spawn
var path = require('path');
var split = require('split');
var pythonData = [];

function startScript(){
  var pyScript = spawn('python', [ path.join(__dirname, 'script.py') ]);
  pyScript.stdout.pipe(split()).on('data', function(lineChunk){
    if (pythonData.length >=25){
      return pyScript.kill();
    }
    pythonData.push(lineChunk.toString());
  });

  pyScript.on('close', function(code){
    console.log("closed");
  });
}

setInterval( function(){
  if(some criteria){
    startScript();  
  }
  else if (other criteria){
    startScript();
  }
},1000);

0 个答案:

没有答案