如何自动重启nodejs cli脚本

How to automatically restart nodejs cli script

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

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

const maxExecution = 200;
let i = 0;

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

此代码可以正常工作,并会在 i 变量达到设定限制时停止任务。我正在阅读 this question 如何管理 process.exit。是否有任何事件可以让我了解脚本执行是否已结束?

当我使用 node<=10(可能在 6 ~ 10 之间,不太确定)时,我有这个代码(typescript,不是普通的 nodejs),它可以在-需求:

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 了,所以我不确定这是否仍然适用于更高版本,但我认为这里值得一提。