How to run commands via NodeJS child process? How to run commands via NodeJS child process? shell shell

How to run commands via NodeJS child process?


Sending a newline \n will exectue the command. .end() will exit the shell.

I modified the example to work with bash as I'm on osx.

var terminal = require('child_process').spawn('bash');terminal.stdout.on('data', function (data) {    console.log('stdout: ' + data);});terminal.on('exit', function (code) {    console.log('child process exited with code ' + code);});setTimeout(function() {    console.log('Sending stdin to terminal');    terminal.stdin.write('echo "Hello $USER. Your machine runs since:"\n');    terminal.stdin.write('uptime\n');    console.log('Ending terminal session');    terminal.stdin.end();}, 1000);

The output will be:

Sending stdin to terminalEnding terminal sessionstdout: Hello root. Your machine runs since:stdout: 9:47  up 50 mins, 2 users, load averages: 1.75 1.58 1.42child process exited with code 0


You just have to send line end (\n) with the command:

setTimeout(function() {    terminal.stdin.write('echo %PATH%\n');}, 2000);


You can use child_process exec method.here is an example:

var exec = require('child_process').exec,    child;child = exec('echo %PATH%',    function (error, stdout, stderr) {        if(stdout!==''){            console.log('---------stdout: ---------\n' + stdout);        }        if(stderr!==''){            console.log('---------stderr: ---------\n' + stderr);        }        if (error !== null) {            console.log('---------exec error: ---------\n[' + error+']');        }    });