我写了一个简单的函数来重启/关闭应用程序。重启不起作用,我无法弄清楚原因。子进程启动然后立即关闭。我试图从孩子身上发现错误,但没有错误。
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)
}
答案 0 :(得分:2)
使用分离选项启动长时间运行的进程时, 父进程退出后,进程将不会在后台运行 除非它提供了未连接的stdio配置 到了父母。
因此,添加stdio: 'ignore'
或其他方法可以使子进程保持活动状态
let proc = childprocess.spawn(process.argv[0],process.argv.splice(1),{
detached: true,
stdio: 'ignore'
})
proc.unref();