我对节点子进程的工作方式有一些疑问。
让我们从用例开始:
我的节点脚本是应该的,以启动假设是持久的PHP脚本。因此,当PHP进程停止时,需要自动重启。
为了实现这一目标,这是我完成的脚本:
const { spawn } = require('child_process')
const path = require('path')
const restartOnExit = true
const queue = 'myQueue'
// We create the child process
const queueProcess = spawn('php', [path.join(__dirname, 'script.php')])
// We log outputs from the php script
queueProcess.stdout.on('data', (data) => {
console.log(`stdout [${queue}]: ${data}`)
})
queueProcess.stderr.on('data', (data) => {
console.log(`stderr [${queue}]: ${data}`)
})
// We restart the script on close if necessary
queueProcess.on('close', (code) => {
console.log(`[${queue}] exited with code ${code}, relaunching if necessary...`)
// If the script stops, it needs to be automatically restarted:
if (restartOnExit) {
launchQueue(queue, true)
}
})
这样,一切正常。但是我对有关节点父级的php脚本的行为有一些疑问:
exit
节点处理程序,因为restartOnExit
变量设置为true,所以重新启动了另一个PHP脚本?