我有以下两个文件。
file1.js和file2.js
在file1.js中,我通过使用子进程中的节点exec
启动files2.js中存在的节点服务器。
我想做的是,通过从exec
调用spawn
或child_process
方法来启动file1.js中存在file2.js的服务器。 10秒钟左右后将其停止,然后重新启动服务器。我该如何实现?
我尝试过的是,在启动服务器后,我调用了process.exit()
,然后再次尝试执行exec
函数,但是由于该过程已经退出,因此第二次调用{ {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
}
})
}