https://www.cnblogs.com/bonelee/p/7735479.html
https://blog.csdn.net/c851204293/article/details/91427893
https://www.cnblogs.com/hml-blog-com/p/11558369.html
—————————————————————————————————————————————————————————————————————————
LINUX查看進程的4種方法
進程是在 CPU 及內存中運行的程序代碼,而每個進程可以創建一個或多個進程(父子進程)。
**查看進程方法:**
第一種:
ps aux
ps命令用於報告當前系統的進程狀態。可以搭配kill指令隨時中斷、刪除不必要的程序。ps命令是最基本同時也是非常強大的進程查看命令,使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等,總之大部分信息都是可以通過執行該命令得到的。
a:顯示當前終端下的所有進程信息,包括其他用戶的進程。
u:使用以用戶為主的格式輸出進程信息。
x:顯示當前用戶在所有終端下的進程。
示例:
**上圖中各字段解釋:**
USER:啟動該進程的用戶賬號名稱
PID:該進程的ID號,在當前系統中是唯一的
%CPU:CPU占用的百分比
%MEM:內存占用的百分比
VSZ:占用虛擬內存(swap空間)的大小
RSS:占用常駐內存(物理內存)的大小
TTY:該進程在哪個終端上運行。“?”表未知或不需要終端
STAT:顯示了進程當前的狀態,如S(休眠)、R(運行)、Z(僵死)、<(高優先級)、N(低優先級)、s(父進程)、+(前台進程)。對處於僵死狀態的進程應予以手動終止。
START:啟動該進程的時間
TIME:該進程占用CPU時間
COMMAND:啟動該進程的命令的名稱
**總結:ps aux 是以簡單列表的形式顯示出進程信息。**
第二種:
ps -elf
-e:顯示系統內的所有進程信息。
-l:使用長(long)格式顯示進程信息。
-f:使用完整的(full)格式顯示進程信息。
上圖字段解釋:
大部分跟第一種一樣,PPID為父進程的PID。
第三種:
top
以全屏交互式的界面顯示進程排名,及時跟蹤包括CPU、內存等系統資源占用情況,默認情況下每三秒刷新一次,其作用基本類似於Windows系統中的任務管理器。
上圖解釋:
Tasks(系統任務)信息:total,總進程數;running,正在運行的進程數;sleeping,休眠的進程數;stopped,中止的進程數;zombie,僵死無響應的進程數。
CPU信息:us,用戶占用;sy,內核占用;ni,優先級調度占用;id,空閑CPU;wa,I/O等待占用;hi,硬件中斷占用;si,軟件中斷占用;st,虛擬化占用。了解空閑的CPU百分比,主要看%id部分。
Mem(內存)信息:total,總內存空間;used,已用內存;free,空閑內存;buffers,緩存區域。
Swap(交換空間)信息:total,總交換空間;used,已用交換空間;free,空閑交換空間;cached,緩存空間。
第四種:
pstree -aup
以樹狀圖的方式展現進程之間的派生關系,顯示效果比較直觀。
-a:顯示每個程序的完整指令,包含路徑,參數或是常駐服務的標示;
-c:不使用精簡標示法;
-G:使用VT100終端機的列繪圖字符;
-h:列出樹狀圖時,特別標明現在執行的程序;
-H<程序識別碼>:此參數的效果和指定"-h"參數類似,但特別標明指定的程序;
-l:采用長列格式顯示樹狀圖;
-n:用程序識別碼排序。預設是以程序名稱來排序;
-p:顯示程序識別碼;
-u:顯示用戶名稱;
—————————————————————————————————————————————————————————————————————————
linux 如何查看應用程序進程號、端口
1.查看kafka對應的進程號
ps aux | grep kafka
或者
ps -ef | grep kafka
2.查看端口對應的進程號
lsof -i:9092
或者
netstat -lnp|grep 8080
3.根據進程號查看對應的信息,比如端口啥的
netstat -anop | grep PID
————————————————————————————————————————————————————————————————————————
原文鏈接:https://blog.csdn.net/c851204293/article/details/91427893
lsof命令是什么?
可以列出被進程所打開的文件的信息。被打開的文件可以是
1.普通的文件,2.目錄 3.網絡文件系統的文件,4.字符設備文件 5.(函數)共享庫 6.管道,命名管道 7.符號鏈接
8.底層的socket字流,網絡socket,unix域名socket
9.在linux里面,大部分的東西都是被當做文件的…..還有其他很多
怎樣使用lsof
這里主要用案例的形式來介紹lsof 命令的使用
1.列出所有打開的文件:
lsof
備注: 如果不加任何參數,就會打開所有被打開的文件,建議加上一下參數來具體定位
2. 查看誰正在使用某個文件
lsof /filepath/file
3.遞歸查看某個目錄的文件信息
lsof +D /filepath/filepath2/
備注: 使用了+D,對應目錄下的所有子目錄和文件都會被列出
4. 比使用+D選項,遍歷查看某個目錄的所有文件信息 的方法
lsof | grep ‘/filepath/filepath2/’
5. 列出某個用戶打開的文件信息
lsof -u username
備注: -u 選項,u其實是user的縮寫
6. 列出某個程序所打開的文件信息
lsof -c mysql
備注: -c 選項將會列出所有以mysql開頭的程序的文件,其實你也可以寫成 lsof | grep mysql, 但是第一種方法明顯比第二種方法要少打幾個字符了
7. 列出多個程序多打開的文件信息
lsof -c mysql -c apache
8. 列出某個用戶以及某個程序所打開的文件信息
lsof -u test -c mysql
9. 列出除了某個用戶外的被打開的文件信息
lsof -u ^root
備注:^這個符號在用戶名之前,將會把是root用戶打開的進程不讓顯示
10. 通過某個進程號顯示該進行打開的文件
lsof -p 1
11. 列出多個進程號對應的文件信息
lsof -p 123,456,789
12. 列出除了某個進程號,其他進程號所打開的文件信息
lsof -p ^1
13 . 列出所有的網絡連接
lsof -i
14. 列出所有tcp 網絡連接信息
lsof -i tcp
15. 列出所有udp網絡連接信息
lsof -i udp
16. 列出誰在使用某個端口
lsof -i :3306
17. 列出誰在使用某個特定的udp端口
lsof -i udp:55
特定的tcp端口
lsof -i tcp:80
18. 列出某個用戶的所有活躍的網絡端口
lsof -a -u test -i
19. 列出所有網絡文件系統
lsof -N
20.域名socket文件
lsof -u
21.某個用戶組所打開的文件信息
lsof -g 5555
22. 根據文件描述列出對應的文件信息
lsof -d description(like 2)
23. 根據文件描述范圍列出文件信息
lsof -d 2-3