diff --git a/lib/tty.js b/lib/tty.js index ebbb41617b6..714031b2c98 100644 --- a/lib/tty.js +++ b/lib/tty.js @@ -10,17 +10,26 @@ exports.getColumns = binding.getColumns; exports.open = function(path, args) { var fds = binding.openpty(); - var masterFD = fds[1]; var slaveFD = fds[0]; + var masterFD = fds[1]; var env = { TERM: 'vt100' }; for (var k in process.env) { env[k] = process.env[k]; } - child = spawn(path, args, env, [masterFD, masterFD, masterFD]); + var stream = require('net').Stream(slaveFD); + stream.readable = stream.writable = true; + stream.resume(); - return [slaveFD, child]; + + child = spawn(path, args, { + env: env, + customFds: [masterFD, masterFD, masterFD], + setuid: true + }); + + return [stream, child]; };