一条指令解决Linux和Windows下杀死指定端口进程的方法(附Shell和Batch脚本)

前言

在日常开发和系统管理中,经常会遇到需要终止特定端口上的进程的情况。本文将介绍如何在 Linux 和 Windows 系统下,使用一条指令来杀死指定端口的进程,同时还将提供相应的 Shell 脚本和 Batch 脚本示例,以实现更便捷的操作。

Linux下的解决方法:

在 Linux 系统中,你可以使用 kill 命令来终止指定端口上的进程。以下是一条结合 lsof 命令的命令示例,它会查找指定端口(比如 8080)的进程并杀死它:(:以下全程root操作,非root操作请自行添加sudo)

kill -9 `lsof -ti:8080`

这条命令中,lsof -ti:8080 会找到端口 8080 监听的进程 ID,然后将其传递给 kill -9 命令来终止进程。这种方法简洁高效,一条命令搞定。

Shell脚本:

如果你想将这个操作封装成一个 Shell 脚本以便反复使用,可以创建一个名为 kill-port.sh 的文件,内容如下:

#!/bin/bash

if [ $# -ne 1 ]; then
  echo "Usage: $0 <port>"
  exit 1
fi

port=$1
kill -9 $(lsof -ti :$port)

通过执行 chmod +x kill-port.sh 命令,赋予脚本执行权限,然后可以使用 ./kill-port.sh 8080 这样的命令来杀死指定端口的进程。

演示操作如下:

在这里插入图片描述
上述通过指令lsof -i :8080查看8080端口占用情况,这里LZ使用脚本的时候特意多输入一个param2参数。脚本中的if校验就提示你怎么用该脚本了。杀死进程后再次使用指令lsof -i :8080检查8080端口是否被kill

Windows下的解决方法:

在 Windows 系统中,打开cmd(最好是以管理员身份运行),可以使用 netstat 命令来查找端口对应的进程 ID,然后使用 taskkill 命令终止进程。以下是一条结合这两个命令的命令示例,用于杀死端口 8080 上的进程:

for /f "tokens=5" %%a in ('netstat -ano ^| findstr :8080') do taskkill /F /PID %%a

Batch脚本:

鼠标双击脚本执行,用户输入指定进程端口,回车等待完成三秒后自动关闭cmd窗口。比如杀死9060端口,步骤:(1、创建txt文件 —>2、复制以下脚本内容—>3、文件后缀改为.bat—> 鼠标双击脚本执行即可)。脚本内容如下:

@echo off
chcp 65001

set/p port=kill-port:
echo port : %port%

set pid=
set executableFile=
for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (
    if [%%d] EQU [LISTENING] (
        set pid=%%e
    )
)

if "%pid%"=="" (
    echo 未找到监听端口为 %port% 的进程,无需终止。
) else (
    for /f "usebackq tokens=1-5" %%a in (`tasklist ^| findstr %pid%`) do (
        set executableFile=%%a
    )
    echo 现在将终止进程:pid %pid%,可执行文件:%executableFile%
    taskkill /f /pid %pid%
)

timeout /t 3 /nobreak > nul

在当前脚本中chcp 65001设置UTF-8格式保证中文不乱码,timeout命令,使提示信息能够被看到。

演示操作如下:

  1. 成功终止操作显示如下
    在这里插入图片描述

  2. 无需终止操作显示如下
    在这里插入图片描述

总结:

通过本文介绍的方法和示例,你可以轻松地在 Windows 和 Linux 系统下终止指定端口的进程,提高了操作的效率和便捷性。无论是直接在命令行中执行一条命令,还是使用脚本封装操作,都能够更加高效地管理进程,确保系统正常运行。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热心码民阿振

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值