无法生成子进程

时间:2017-12-27 19:47:57

标签: node.js

我写了一个简单的函数来重启/关闭应用程序。重启不起作用,我无法弄清楚原因。子进程启动然后立即关闭。我试图从孩子身上发现错误,但没有错误。

async function Shutdown(message,restart){
    if(message) console.log(message)

    await Logout()

    if(restart){
        let proc = childprocess.spawn(process.argv[0],process.argv.splice(1),{
            "detached": true,
        })
    }
    process.exit(0)
}

1 个答案:

答案 0 :(得分:2)

来自documentation

  

使用分离选项启动长时间运行的进程时,   父进程退出后,进程将不会在后台运行   除非它提供了未连接的stdio配置   到了父母。

因此,添加stdio: 'ignore'或其他方法可以使子进程保持活动状态

    let proc = childprocess.spawn(process.argv[0],process.argv.splice(1),{
          detached: true,
          stdio: 'ignore'
    })
   proc.unref();