我正在研究Visual Studio Code的扩展,我需要分叉一个子进程。该过程似乎永远不会退出,发送消息,甚至无法运行(我已尝试从子进程编写文件以验证它是否正在运行)。
这是我分支子进程的代码:
let process = require('child_process').fork('./child', [], {});
process.on('message', message => console.log('message: ' + message)); // handler is never called
process.on('exit', code => console.log('exited with code ' + code)); // handler is never called
这是child.js:
require('fs').writeFileSync(__dirname + '/hello.txt', 'Hello', 'utf8'); // file never gets written
process.send('hello');
应该注意的是,尝试使用spawn('node', [__dirname + '/child.js'], {})
运行相同的脚本可以正常工作。
在调试实例中测试一下。我做错了什么?
答案 0 :(得分:0)
我认为./child
已解析为path.join(process.cwd, './child')
且process.cwd
不等于__dirname
。