写在标准input的产生的child_process不起作用
我生成一个Java应用程序(REPL查询本地数据库)使用:
repl = = require('child_process').spawn('java', ['-cp', '...list of libs...', ,{ cwd: '...path to env...', env: process.env, customFds: [-1, -1, -1] });
REPL加载正常,因为我可以看到它的输出在标准输出,但stdin.write命令不经过。 我可以直接写他们的节点进程本身的控制台窗口(这是奇怪的,因为我没有.resume()它)。 我已经打印出衍生进程的标准input,它看起来像这样:
{ _handle: { writeQueueSize: 0, socket: [Circular], onread: [Function: onread] }, _pendingWriteReqs: 0, _flags: 0, _connectQueueSize: 0, destroyed: false, bytesRead: 0, bytesWritten: 0, allowHalfOpen: undefined, writable: true, readable: false }
看起来没有定义“fd”,而且.readable
返回false。 这怎么解决? (这是所有在Windows机器上,节点v0.6.6)谢谢
该文档指出, customFds
选项已被弃用,因为它们无法使其在Windows上工作。
虽然-1
的数组意味着它不应该被使用,因为整个选项已被弃用,请尝试彻底删除它,看看是否可以解决您的问题。