如何自动重新启动 nodejs cli 脚本



是否可以在完成执行代码后自动重新启动节点 cli 脚本?

我有这个 cli 脚本,它将运行直到变量达到限制

const maxExecution = 200;
let i = 0;
let task = setInterval( () => {
i++;   
if( i >= maxExecution ){
clearInterval(task);
}
// code here... 
},5000);

此代码将正常工作,并在i变量达到设置的限制时停止任务。我正在阅读这个问题 如何管理process.exit.是否有任何事件我可以听来了解脚本执行是否已经结束?

当我使用 node<=10 时,我有这段代码(typescript,而不是原版nodejs)(可能在 6 ~ 10 之间,不太确定),它可以按需重新启动:

import { spawn } from "child_process";
let need_restart:boolean=false;
process.on("exit",function(){
if(need_restart){
spawn(process.argv.shift(),process.argv,{
"cwd":process.cwd(),
"detached":true,
"stdio":"inherit"
});
}
});

它是http/ws服务器的一部分,当所有服务器关闭(不再有事件)时,进程会自动退出。通过将need_restart设置为true,当发生这种情况时,它将自行重新启动。

我已经有一段时间没有使用 node 了,所以我不确定这是否仍然适用于更高版本,但我认为这里值得一提。

最新更新