是否可以在完成执行代码后自动重新启动节点 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 了,所以我不确定这是否仍然适用于更高版本,但我认为这里值得一提。