无法生成子进程

问题描述 投票:2回答:1

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

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)
}
node.js
1个回答
2
投票

来自documentation

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

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

    let proc = childprocess.spawn(process.argv[0],process.argv.splice(1),{
          detached: true,
          stdio: 'ignore'
    })
   proc.unref();
© www.soinside.com 2019 - 2024. All rights reserved.