yup, spawn a 'bash' child process may be not a good idea.
spawn a process according to input command string is more easier.

Thanks
Herry

On Fri, Jul 27, 2012 at 5:42 PM, Nathan Rajlich <[email protected]>wrote:

> You need to do something like:
>
>   process.kill(child.pid, 'SIGINT');
>
> On Fri, Jul 27, 2012 at 4:57 PM, Herry Wang <[email protected]> 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]>wrote:
>>
>>> I would say try: https://github.com/chjj/tty.js
>>>
>>> On Fri, Jul 27, 2012 at 4:47 PM, Herry Wang <[email protected]>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]
>>>> To unsubscribe from this group, send email to
>>>> [email protected]
>>>> 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]
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> 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]
>> To unsubscribe from this group, send email to
>> [email protected]
>> 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]
> To unsubscribe from this group, send email to
> [email protected]
> 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]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to