process.stdout.pipe(child_process.stdout)失效

const spawn = require('child_process').spawn
io.on('connection', (socket) => {
  const shell = spawn('bash')
  const output = function(msg) {
    socket.emit('output', msg.toString())
  }
  shell.stdout.on('data', output)
  shell.stderr.on('data', output)
  
  // shell.stdout.pipe(process.stdout)
  // 对子进程进行操作,父进程能看到子进程输出
  
  // 子进程看不到父进程的输出 好像两个stdout不是同一个类型的对象?
  process.stdout.pipe(shell.stdout)
  ......
})

或者有什么其他办法能让子进程接受到process的输出
ps: 没办法用process.send,process.emit('data',...)

阅读 4.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题