我正在使用child_process.spawn
来运行某个应用,我希望在此应用启动后执行一些操作。但是spawn
阻止了主要进程
const spawnAsync = Promise.promisify(require('child_process').spawn);
console.log('BEFORE');
await spawnAsync('../node_modules/.bin/some-app', ['-p', '3333'], {
detached: true
});
console.log('AFTER');
在我的控制台中,我看到只有在BEFORE
端口上的终止进程后才会记录AFTER
和3333
。我不想等待催生的过程,我想在spawnSync
致电后做一些动作。
答案 0 :(得分:1)
查看spawn文档,你应该这样使用
const childProcess = require('child_process');
const newProcessDescriptor = childProcess.spawn(
'../node_modules/.bin/some-app',
['-p', '3333'], {
detached: true
},
);
newProcessDescriptor.on('error', (error) => {
console.log(`child process creating error with error ${error}`);
});
newProcessDescriptor.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});