Windows根据端口号关闭进程

Posted yangqee0409

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows根据端口号关闭进程相关的知识,希望对你有一定的参考价值。

一、 根据端口查出PID
netstat -aon| findstr 8001(端口号)
二、根据PID关闭进程
taskkill /f  /pid 461128(pid)
Microsoft Windows [版本 10.0.19045.2604]
(c) Microsoft Corporation。保留所有权利。
 
C:\\Users\\Dell>netstat -aon| findstr 8001
  TCP    0.0.0.0:8001           0.0.0.0:0              LISTENING       461128
  TCP    [::]:8001              [::]:0                 LISTENING       461128
 
C:\\Users\\Dell>taskkill /f/pid 461128
错误: 无效参数/选项 - '/f/pid'。
键入 "TASKKILL /?" 以了解用法。
 
C:\\Users\\Dell>taskkill /?
 
TASKKILL [/S system [/U username [/P [password]]]]
          [/FI filter] [/PID processid | /IM imagename] [/T] [/F]
 
描述:
    使用该工具按照进程 ID (PID) 或映像名称终止任务。
 
参数列表:
    /S    system           指定要连接的远程系统。
 
    /U    [domain\\]user    指定应该在哪个用户上下文执行这个命令。
 
    /P    [password]       为提供的用户上下文指定密码。如果忽略,提示
                           输入。
 
    /FI   filter           应用筛选器以选择一组任务。
                           允许使用 "*"。例如,映像名称 eq acme*
 
    /PID  processid        指定要终止的进程的 PID。
                           使用 TaskList 取得 PID。
 
    /IM   imagename        指定要终止的进程的映像名称。通配符 '*'可用来
                           指定所有任务或映像名称。
 
    /T                     终止指定的进程和由它启用的子进程。
 
    /F                     指定强制终止进程。
 
    /?                     显示帮助消息。
 
筛选器:
    筛选器名      有效运算符                有效值
    -----------   ---------------           -------------------------
    STATUS        eq, ne                    RUNNING |
                                            NOT RESPONDING | UNKNOWN
    IMAGENAME     eq, ne                    映像名称
    PID           eq, ne, gt, lt, ge, le    PID 值
    SESSION       eq, ne, gt, lt, ge, le    会话编号。
    CPUTIME       eq, ne, gt, lt, ge, le    CPU 时间,格式为
                                            hh:mm:ss。
                                            hh - 时,
                                            mm - 分,ss - 秒
    MEMUSAGE      eq, ne, gt, lt, ge, le    内存使用量,单位为 KB
    USERNAME      eq, ne                    用户名,格式为 [domain\\]user
    MODULES       eq, ne                    DLL 名称
    SERVICES      eq, ne                    服务名称
    WINDOWTITLE   eq, ne                    窗口标题
 
    说明
    ----
    1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。
    2) 远程进程总是要强行 (/F) 终止。
    3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。
 
例如:
    TASKKILL /IM notepad.exe
    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
    TASKKILL /F /IM cmd.exe /T
    TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
    TASKKILL /F /FI "USERNAME eq NT AUTHORITY\\SYSTEM" /IM notepad.exe
    TASKKILL /S system /U 域\\用户名 /FI "用户名 ne NT*" /IM *
    TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"
 
C:\\Users\\Dell>taskkill /pid 461128
错误: 无法终止 PID 为 461128 的进程。
原因: 只能强行终止这个进程(带 /F 选项)。
 
C:\\Users\\Dell>taskkill /f  /pid 461128
成功: 已终止 PID 为 461128 的进程。

Nodejs关闭windows服务进程

1.根据端口号,查询进程信息命令:

netstat -aon | findstr "端口号"

2.根据pid杀死进程命令:

taskkill /F /pid 进程号

 

完整代码:

const windowsServiceStop = function(port){
        let netstat_command = \'netstat -aon | findstr \\":\'+port+\'\\"\';
        console.log(\'查询服务进程...\'+netstat_command);
        exec(netstat_command,{maxBuffer: 5000 * 1024},(err, stdout, stderr) => {
            if (err) {
                console.log(\'查询服务进程异常:\'+err);
                return false;
            }
            let line = stdout.split(\'\\n\')[0]; //第一行信息
            console.log(\'查询成功,进程信息:\'+line);

            let p=line.trim().split(/\\s+/);
     let address=p[1];    
            let pid = p[4];
            if(address.split(\':\')[1] != port || !pid || pid.length == 0){
                console.log(\'获取进程id失败\');
                return false;
            }

            let taskkill_command = \'taskkill /F /pid \'+pid;
            console.log(\'关闭服务...\'+taskkill_command);
            exec(taskkill_command,{maxBuffer: 5000 * 1024},function(err, stdout, stderr){
                if(err){
                    console.log(\'关闭服务异常:\'+err);
                    return false;
                }
                console.log(\'服务关闭成功\');
                return true;
            });
        });
    };

 

 

参考:

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

 

以上是关于Windows根据端口号关闭进程的主要内容,如果未能解决你的问题,请参考以下文章

cmd批处理bat命令根据端口号一键关闭杀死对应进程程序

Windows - 杀死占用某个端口号的进程

windows根据端口号找进程

windows server 2008 端口号怎么开启

【Windows编程问题!!】C++根据端口号,获取对应的进程PID,但是有的端口怎么也找不到对应进程,WHY??

windows 关闭端口占用及其他常见操作