常見的端口號列表:https://www.cnblogs.com/httpssl/p/11003935.html
ps命令詳解
ps : 將某個進程顯示出來
-A 顯示所有程序。
-e 此參數的效果和指定"A"參數相同。
-f 顯示UID,PPIP,C與STIME欄位。
查找特定應用程序所占用的進程
ps -ef|grep [應用程序名稱]
grep命令是查找,中間的|是管道命令 是指 ps命令與grep命令 同時執行。
查看應用程序的進程
我查找的是 java程序占用的進程,命令如下:
ps -ef|grep java
可以看到,能夠查找到兩個進程。
請注意,帶--color=auto
是grep命令自帶的進程。
如果你再次運行ps -ef|grep java
,會發現它的的進程號是會變動的,而java程序占用的進程號不會改變。
這對於新手來說,很不方便,因為有時候使用kill 命令會提示 進程不存在。
此時,可以通過命令,屏蔽grep本身占用的進程,命令如下:
ps -ef|grep java|grep -v grep
查找到進程號,可以通過 kill 命令,將其殺死,命令如下:
kill -9 [進程號]
通過進程查看端口
以 java 為例,它的進程號是 22830
netstat -apn | grep 22830
如果列表太多,可以通過 less命令 只顯示一屏幕
netstat -apn | grep 22830|less
或者只顯示 10 行信息
netstat -anp |grep 22830 -m 10
通過端口查看進程
有時候我們會遇到Linux系統端口被占用的問題,比如:
此時,我們可以通過被占用的端口號,查找究竟是哪個進程占用了該端口。
lsof——list open files,它是Linux系統查看打開的文件以及相關進程信息的工具。
該命令需要訪問核心內存和各種文件,所以需要root用戶執行。
lsof -i:端口號
以查找端口號10000為例子:lsof -i:10000
參數詳解:
COMMAND:與文件關聯進程的名稱
PID:進程號
USER:歸屬的用戶
FD:進程與文件的關聯關系
TYPE:文件類型
DEVICE:文件所在設備的設備號(major,minor)
SIZE/OFF:文件大小或進程對文件操作的偏移量
NODE:文件索引標識
NAME:文件名
FD列的值,指示了進程與文件的關聯關系,有以下常見取值:
cwd:進程工作目錄
txt:進程由該文件拉起(如二進制文件或腳本)
rtd:進程的根目錄
mem:內存映射文件
N(u/w/r):該文件為進程打開的第N個文件描述符,u為可讀可寫模式,w為可寫模式,r為可讀模式
TYPE列有以下常見取值:
REG:一般文件
DIR:目錄
CHR:字符設備
BLK:塊設備
FIFO:命名管道
PIPE:管道
IPV4:ipv4套接字
unix:unix域套接字
根據以上字段,我們可以了解到哪個文件,以何種關聯方式與哪個進程關聯。
但執行lsof命令,有時候輸出太多,為了獲取必要輸出,我們就得加一些過濾選項。
該命令博大精深。
這里不做其他探討,只用作查看端口運行情況。
拓展文檔:
https://blog.csdn.net/qq_27870421/article/details/92803453
https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316599.html