首先要搞清楚 linux 查看進程和查看端口是兩個概念,一般來講進程會有多個,而固定端口只會有一個。
1、查看進程 ,通常在使用 ps 命令后 用管道連接(ps -ef|grep xxx ) 查詢特定進程
顯示當前用戶,進程號,進程名等信息
使用 kill + pid即可關閉進程
需要注意的是:一些初學者在該命令后添加端口號進行查詢,查到的不是改端口所在進程,而是grep 進程,而grep進程的pid是時時都在變化的,如果使用關閉命令強制關閉
將會退出服務終端....
2、查看端口號被占用情況 lsof -i 命令
剛說到ps +管道查詢端口是無效的,正確的是需要使用 lsof命令 加 -i 再加端口號(lsof -i:8080 )
常見參數
lsof -i:8080:查看8080端口占用 lsof abc.txt:顯示開啟文件abc.txt的進程 lsof -c abc:顯示abc進程現在打開的文件 lsof -c -p 1234:列出進程號為1234的進程所打開的文件 lsof -g gid:顯示歸屬gid的進程情況 lsof +d /usr/local/:顯示目錄下被進程開啟的文件 lsof +D /usr/local/:同上,但是會搜索目錄下的目錄,時間較長 lsof -d 4:顯示使用fd為4的進程 lsof -i -U:顯示所有打開的端口和UNIX domain文件
再使用kill + pid 命令關閉進程即可
3、查看端口號被占用情況 netstat 命令
netstat 命令是Linux用於顯示各種網絡相關信息,是一個監控TCP/IP網絡的非常有用的工具,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。
常見參數
-a或--all:顯示所有選項,默認不顯示LISTEN相關
-t或--tcp:僅顯示tcp相關選項
-u或--udp:僅顯示udp相關選項
-n或--numeric:直接使用ip地址,而不通過域名服務器(拒絕顯示別名,能顯示數字的全部轉化成數字)
-l或--listening:僅列出有在 Listen (監聽) 的服務狀態
-p或--programs:顯示建立相關鏈接的程序名
-r或--route:顯示路由信息,路由表
-e或--extend:顯示擴展信息,例如uid等
-s或--statistice:顯示網絡工作信息統計表(按各個協議進行統計)
-c或--continuous:每隔一個固定時間,執行該netstat命令。
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到