@Henry, Did you ever find why this is not working?

I found this thread searching for the exact thing.  We need a connection to 
a shell across an encrypted connection.  I found that when I run the tunnel 
program from the commandline, I can use "^C" to kill processes like 
`watch`.  However, when I create the tunnel from a daemon (as will happen 
in our application), ^C fails to kill the process.  I just see a "^C" on 
the screen.  Since most commands can be killed in BASH with "^Z kill %", we 
can probably move forward -- the tunnel is a fail-safe-- but I'd like to 
understand the mechanism why sending "\x03" to the spawn'd `stdin` fails to 
create a SIGINT.

Thanks!


On Friday, July 27, 2012 at 6:57:51 PM UTC-5, Herry wrote:
>
> yeah, actually i am looking into tty.js.  But i wanna use it in my own 
> project with 'light' version.
> Just wandering why \x03 is not working.
>
> Thanks
> Herry
>
> On Fri, Jul 27, 2012 at 4:49 PM, Marak Squires <[email protected] 
> <javascript:>> wrote:
>
>> I would say try: https://github.com/chjj/tty.js
>>
>> On Fri, Jul 27, 2012 at 4:47 PM, Herry Wang <[email protected] 
>> <javascript:>> wrote:
>>
>>> I am writing one web-like linux shell using node.js + socket.io. Simple 
>>> command like, ls, cd are working well. But when issue command like ping 
>>> google.com, the stdout is printing endlessly. I tried to send Ctrl +C 
>>> to stdin, but no luck.
>>>
>>> 1) spawn 'bash' process
>>>
>>> spawn = require('child_process').spawn;
>>>
>>>
>>> var sh = spawn('bash');
>>>
>>>
>>>  2) send bash stdout to socket.io
>>>
>>> sh.stdout.on('data', function(data) {
>>>
>>>
>>>
>>>    console.log('stdout' + data);
>>>
>>>
>>>
>>>    listener.sockets.emit("stdout",new Buffer(data));
>>>
>>>
>>> });
>>>
>>>
>>>  3) Sending Ctl C (\x03) to bash's stdin. var listener = 
>>> io.listen(server);
>>>
>>> listener.set('log level',1);
>>>
>>>
>>>
>>> listener.sockets.on('connection', function(client){
>>>
>>>
>>>
>>>    client.on('message', function(data){
>>>
>>>
>>>
>>>       if(data === "KILL") {
>>>
>>>
>>>
>>>          console.log('!!!!' + data);
>>>
>>>
>>>
>>>          sh.stdin.write('\x03');
>>>
>>>
>>>
>>>          client.broadcast.send(new Buffer("KILLING "));
>>>
>>>
>>>
>>>          //return;
>>>
>>>
>>>
>>>       };
>>>
>>>
>>>
>>>       console.log(data);
>>>
>>>
>>>
>>>       sh.stdin.write(data+"\n");
>>>
>>>
>>>
>>>       client.broadcast.send(new Buffer("> "+data));
>>>
>>>
>>>
>>>    });
>>>
>>>
>>> });
>>>
>>>
>>>  I am stuck at this point. Seems like
>>>
>>> -- 
>>> Job Board: http://jobs.nodejs.org/
>>> Posting guidelines: 
>>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>>> You received this message because you are subscribed to the Google
>>> Groups "nodejs" group.
>>> To post to this group, send email to [email protected] 
>>> <javascript:>
>>> To unsubscribe from this group, send email to
>>> [email protected] <javascript:>
>>> For more options, visit this group at
>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>>
>>
>> -- 
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines: 
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> You received this message because you are subscribed to the Google
>> Groups "nodejs" group.
>> To post to this group, send email to [email protected] 
>> <javascript:>
>> To unsubscribe from this group, send email to
>> [email protected] <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>
>
>

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/b2c4d0ea-b4f3-416c-82fd-e04461364fce%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to