从另一个文件停止节点服务器

时间:2018-11-16 10:15:36

标签: node.js

我有以下两个文件。

file1.js和file2.js

在file1.js中,我通过使用子进程中的节点exec启动files2.js中存在的节点服务器。

我想做的是,通过从exec调用spawnchild_process方法来启动file1.js中存在file2.js的服务器。 10秒钟左右后将其停止,然后重新启动服务器。我该如何实现?

我尝试过的是,在启动服务器后,我调用了process.exit(),然后再次尝试执行exec函数,但是由于该过程已经退出,因此第二次调用{ {1}}从未真正达到过。

我想在不使用任何外部程序包的情况下实现这一目标。

1 个答案:

答案 0 :(得分:0)

一种方法是 setTimeout()

const { exec } = require('child_process');
let stopped = false;
exec('command to start the server in file two', (err, stdout, stderr) => {
  if (err) {
    // handle error
  } else {
    // do stuff
  }
});
setTimeout(function(){ 
     exec('stop the server in file two', (err, stdout, stderr)=>{
        stopped = true;
        if(err){
          // handle error
        } else {
          // do stuff
        }
     })
}, 10000);

if(stopped) {
   exec('start server again', (err, stdout, stderr)=>{
       stopped = false;
       if(err){
        // handle error
      } else {
        // do stuff
      }
   })
}