Linux下通过端口找到对应的程序
比如我们已知端口5600被占用,需要找到是哪个程序占用了,可以通过如下方式进行查找。
1. 先通过lsof命令找到打开该端口对应的程序的PID。
[yuanping@Linux C]$ lsof -i :5600 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME server 4643 yuanping 3u IPv4 1286699 0t0 TCP *:esmmanager (LISTEN)
2. 通过PID找到对应的文件,这里的4643就是上面步骤中找到的程序的PID。
[yuanping@Linux C]$ ls -l /proc/4643/exe lrwxrwxrwx. 1 yuanping yuanping 0 Jan 8 23:08 /proc/4643/exe -> /home/yuanping/Code/C/server [yuanping@Linux C]$
或者可以通过如下一个语句完成,其中5600换成你的端口。
[yuanping@Linux C]$ ls -l /proc/`lsof -i :5600 | awk -F " " '{print $2}' | grep -v "PID" | sort | uniq`/exe lrwxrwxrwx. 1 yuanping yuanping 0 Jan 8 23:08 /proc/4643/exe -> /home/yuanping/Code/C/server [yuanping@Linux C]$