📜  删除端口绑定窗口 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:50:20.599000             🧑  作者: Mango

删除端口绑定窗口 - Shell-Bash

在开发过程中,我们常常需要使用网络通信,而端口绑定常常是一个必要的步骤。然而,当我们需要修改或升级程序时,常常需要释放已绑定的端口,否则程序会启动失败。本文将介绍如何使用Shell-Bash脚本实现删除端口绑定窗口。

方法一

使用lsof命令查找到指定端口的进程PID,然后使用kill命令杀死该进程。下面是示例代码:

# 查找端口绑定的进程PID
pid=$(lsof -t -i :$port)
if [ "$pid" != "" ]
then
    # 杀死进程
    kill -9 $pid
    echo "The process binded to port $port has been killed."
else
    echo "No process binded to port $port."
fi
方法二

使用netstat命令查找到指定端口的监听进程,然后使用fuser命令杀死该进程。下面是示例代码:

# 查找端口绑定的监听进程
pid=$(netstat -nap | grep ":$port " | awk '{print $7}' | sed 's#/.*##g')
if [ "$pid" != "" ]
then
    # 杀死进程
    fuser -k $port/tcp
    echo "The process binded to port $port has been killed."
else
    echo "No process binded to port $port."
fi

需要注意的是,以上方法都需要以root权限运行。同时,如果某个进程绑定了多个端口,需要修改代码来支持同时删除多个端口的绑定。

参考资料:Finding and Killing the Process That Is Using a Port on Linux