📅  最后修改于: 2023-12-03 14:50:20.599000             🧑  作者: Mango
在开发过程中,我们常常需要使用网络通信,而端口绑定常常是一个必要的步骤。然而,当我们需要修改或升级程序时,常常需要释放已绑定的端口,否则程序会启动失败。本文将介绍如何使用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