linux如何檢視埠被哪個程序佔用?
我們在使用linux系統的.伺服器時我們又時會突然發現發現伺服器上某個埠起不來,老提示埠已經被佔用。而對於這種情況我們該怎麼解決呢?
使用命令:
ps -aux | grep tomcat
發現並沒有8080埠的Tomcat程序。
使用命令:netstat –apn
檢視所有的程序和埠使用情況。發現下面的程序列表,其中最後一欄是PID/Program name
發現8080埠被PID為9658的Java程序佔用。
進一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 檢視
就可以明確知道8080埠是被哪個程式佔用了!然後判斷是否使用KILL命令幹掉!
方法二:直接使用
netstat -anp | grep portno
即:netstat –apn | grep 8080
方法三:
Linux:
cba001:~ # lsof -i:5300
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
named 26751 root 20u IPv4 64750499 TCP localhost:hacl-hb (LISTEN)
named 26751 root 21u IPv4 64750501 TCP cba001.eapac:hacl-hb (LISTEN)
named 26751 root 22u IPv4 64750503 TCP 192.168.0.10:hacl-hb (LISTEN)
named 26751 root 512u IPv4 64750498 UDP localhost:hacl-hb
named 26751 root 513u IPv4 64750500 UDP cba001.eapac:hacl-hb
named 26751 root 514u IPv4 64750502 UDP 192.168.0.10:hacl-hb
[注]:執行lsof -i:5300以後就可以看到26751程序在TCP和UDP上都打開了5300埠.
cba001:~ # ps -ef|grep 26751
root 10118 26915 0 12:59 pts/8 00:00:00 grep 26751
root 26751 1 0 Jul06 ? 00:02:06 /opt/ipworks/IPWdns/usr/bin/named
[注]:執行ps -ef|grep 26751以後就可以看到是named程序打開了5300埠
檢視程序ID:
lsof -w -n -i tcp:8080
fuser -n tcp 8080netstat -anp|grep :8080[[:blank:]]
殺掉佔用埠的程序PID:
kill -9 pidnumber