Search code examples
node.jsstdinspawnchild-process

sending crtl+c to a node.js spawned childprocess using stdin.write()?


In a node script, I have spawned a child process which executes a batch file run.bat , to terminate the program started by the batch-file i need to send ctrl+c combination to the child process , it is required for me to send ctrl+c combination to the program using stdin.write() method.

var hmc = require('child_process').spawn('cmd');
hmc.stdin.write('run.bat \n');

Solution

  • A CTRL+C is equivalent to sending a SIGINT on Windows. Rather than trying to send a keystroke to the process, you can send a signal instead. This can either be done with a child process method or from other processes, provided that you have the process ID of the child:

    hmc.kill('SIGINT');
    // or from another process
    process.kill(hmc.pid, 'SIGINT');