在Windows中杀死正在运行的节点进程

时间:2014-08-06 07:35:41

标签: node.js

我试图在Windows

中从正在运行的节点服务器停止节点脚本

将脚本作为node appium -p 3000

运行

它将处于运行状态,直到它停止 我需要在特定情况下停止运行此脚本 在Windows中如何杀死此节点脚本node appium -p 3000 我不需要使用PID来杀死它。是否有任何可能的方法来杀死正在运行的进程

    var start = spawn('node appium -p 3000', args);
start.stdout.on('data', function(data) {
    console.log(data)
});
start.stderr.on('data', function(data) {
    console.log('ps stderr: ' + data);
});
start.on('close', function(code) {
    console.log('process exit code ' + code);
});


function killall(){

start.kill()//is it possible??/
process.exit() //is it also possible??

}

1 个答案:

答案 0 :(得分:5)

  • 通过PID杀死它

    Stop-Process 3512
    
  • 按进程名称

    终止
    Stop-Process -processname node*
    
  • 如果它以child_process

    的形式启动,请让其他人将其杀死
    var exec = require('child_process').exec;
    
    var child = exec('node appium -p 3000');
    
    // Kill after 3 seconds
    setTimeout(function(){ child.kill(); }, 3000);
    
  • 自杀

    process.exit();
    
  • 如果不是后台进程,请使用CTRL + C将其终止。

您在评论中表示它确实是作为子进程启动的,但您需要在另一个函数中将其杀死。这是一个可变范围的问题。以下将 NOT 工作:

function launch(){
    var child = spawn(cmd, args);
}

function kill(){
    child.kill(); // child is undefined
}

您只需要确保范围内存在child

var child;

function launch(){
    child = spawn(cmd, args);
}

function kill(){
    child.kill();
}