Node.js脚本杀掉占用端口的进程

express默认端口为3000,由于实际需要改为3392,修改监听3392之后,没有成功,发现该端口被系统正占用,为了避免每次都手工停掉该系统调用,释放端口,故写了如下脚本。

var cmd=process.platform=='win32'?'netstat -ano':'ps aux';
var exec = require('child_process').exec;
var qqname='qq';
var port='3392';

exec(cmd, function(err, stdout, stderr) {
    if(err){ return console.log(err); }
    
    stdout.split('
').filter(function(line){        
        var p=line.trim().split(/s+/); 
        var address=p[1];        

        if(address!=undefined){        
            if(address.split(':')[1]==port)
            {                
                exec('taskkill /F /pid '+p[4],function(err, stdout, stderr){
                    if(err){
                        return console.log('释放指定端口失败!!');    
                    }
                    
                    console.log('占用指定端口的程序被成功杀掉!');
                });
            }
        }                          
    });
});
原文地址:https://www.cnblogs.com/huanghaihua/p/4910945.html