在Windows上使用Node.js的child_process.spawn
生成一个新的子进程时,它总是会打开一个空白的控制台窗口,直到子进程结束。
有没有办法避免这种情况呢?
即我们希望使用forever
将应用程序作为后台服务运行。然而,它并不是真正的后台,因为它不断地打开和关闭空白控制台窗口...
编辑:将子应用程序运行在“安静”模式下不是一个选项,因为正在生成的进程的部分内容是wmic
。
在Windows上使用Node.js的child_process.spawn
生成一个新的子进程时,它总是会打开一个空白的控制台窗口,直到子进程结束。
有没有办法避免这种情况呢?
即我们希望使用forever
将应用程序作为后台服务运行。然而,它并不是真正的后台,因为它不断地打开和关闭空白控制台窗口...
编辑:将子应用程序运行在“安静”模式下不是一个选项,因为正在生成的进程的部分内容是wmic
。
使用detached
属性,例如:
spawn('node', [filePath, args], {
detached: true,
stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
})
这种方式将永远为应用程序生成一个控制台,而不是为每个生成的控制台窗口打开。
forever -c "cmd /c node" start app.js
继续RanP的回答,
forever start --uid "foo" -c "cmd /c node" app.js
在使用-c参数之前,您需要“start”,而--uid是可选的。请注意,在-c命令中少了一个空格,从而使其正常工作。
stdout
和stderr
添加data
监听器?我在谈论spawn
。 - Gyandeep