📅  最后修改于: 2023-12-03 15:13:37.256000             🧑  作者: Mango
在开发一个应用程序时,我们可能会遇到某个端口被占用的情况,这时候我们需要查找当前占用该端口的进程,找到进程后,根据不同的情况,我们可能需要杀死该进程或者修改应用程序的端口。
bash脚本可以帮助我们快速定位端口对应的进程,下面是一个简单的实现方式。
lsof命令是一条非常有用的系统命令,它可以列出当前系统中所有打开的文件和进程信息。我们可以通过该命令来查找当前占用特定端口的进程。
#!/bin/bash
if [ $# -ne 1 ];then
echo "Usage: $0 <port>"
exit 1
fi
port=$1
# 查找端口占用的进程
pid=$(lsof -t -i:$port)
if [ -z $pid ]; then
echo "Port $port is not in use"
else
echo "Port $port is used by process $pid"
fi
netstat命令也可以用来查找当前占用特定端口的进程信息。
#!/bin/bash
if [ $# -ne 1 ];then
echo "Usage: $0 <port>"
exit 1
fi
port=$1
# 查找端口占用的进程
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }')
if [ -z $pid ]; then
echo "Port $port is not in use"
else
echo "Port $port is used by process $pid"
fi
以上两种方法都可以用来查找当前占用特定端口的进程信息,使用时可根据个人习惯和实际情况选择。当然,还有其他一些工具和方法也可以实现相同的功能,例如:fuser命令、ss命令等等。