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

1

0

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');
Hocuspocus answered 16/10, 2013 at 15:1 Comment(0)
C
1

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');
Chitchat answered 16/10, 2013 at 15:3 Comment(3)
nodejs.org/api/process.html#process_signal_events Note that Windows does not support sending Signals, but node offers some emulation with process.kill(), and child_process.kill(): - Sending signal 0 can be used to search for the existence of a process - Sending SIGINT, SIGTERM, and SIGKILL cause the unconditional exit of the target process.Legendre
So it wont be a signal in windows. You will just kill the process immediately (not gracefully).Legendre
@garkin's comment is right, the signal is NOT sent, but rather the child process is just unconditionally killed.Garble

© 2022 - 2024 — McMap. All rights reserved.