如何杀死 NodeJS 子执行进程?

How to kill a NodeJS child exec process?

我正在使用exec函数从NodeJS执行一个Python程序]child_process 我希望通过单击按钮终止进程。 我正在使用 Windows11.

这是我的代码:

var process__ = undefined; // this is a global variable

    function executePython(command_line_arguement){
      const exec = require('child_process').exec;
      process__=exec(`python program.py "${command_line_arguement}"`, { encoding: 'utf-8',detached : true }, (error, stdout, stderr) => {
        if (error) {
          console.error(`exec error: ${error}, ${stderr}`);
        }else{
        console.log(stdout);
        }
      });

    function onButtonClick(){
        process__.kill('SIGINT');
    }

然而,这不会似乎停止杀死 python 被触发的进程。

任何关于如何进行的指导都将非常有用。

提前致谢!!

我相信 windows 需要强制终止来终止进程,例如

exec('taskkill /F /T /PID ' + process__.pid);

// F - force terminate
// T - kill all sub-processes
// PID - Process Id that you're targetting

有关 taskkill 和标志的信息,请参阅 documentation