在Linux系統(tǒng)中,進(jìn)程是資源分配的基本單位,無論是服務(wù)器運維、程序調(diào)試還是日常使用,掌握進(jìn)程管理工具都是必備技能。今天就帶大家梳理6個最常用的進(jìn)程管理工具,從查看進(jìn)程到控制進(jìn)程,一篇文章全搞定!
一、ps:靜態(tài)查看進(jìn)程的"快照神器"
功能定位:ps(Process Status)是最基礎(chǔ)的進(jìn)程查看工具,能生成當(dāng)前進(jìn)程的"靜態(tài)快照",適合快速了解系統(tǒng)進(jìn)程概況。
核心用法:
?ps aux:查看所有用戶的進(jìn)程(最常用)

psaux | grep nginx
?a:顯示所有用戶的進(jìn)程
?u:顯示進(jìn)程所屬用戶、CPU /內(nèi)存占用等詳細(xì)信息
?x:顯示無終端(后臺運行)的進(jìn)程
示例:查看nginx進(jìn)程狀態(tài)
?ps -ef:以"父進(jìn)程→子進(jìn)程"的層級關(guān)系顯示進(jìn)程
示例:查看進(jìn)程PID(第二列)和父進(jìn)程PPID(第三列)
|
ps -ef | grep java
|
適用場景:快速定位某個進(jìn)程是否在運行、查看進(jìn)程的資源占用和所屬用戶。
二、top:實時監(jiān)控進(jìn)程的"儀表盤"
功能定位:top是動態(tài)進(jìn)程監(jiān)控工具,能實時刷新進(jìn)程狀態(tài)(默認(rèn)3秒/次),適合跟蹤進(jìn)程資源占用變化。

核心操作:
1.啟動top:直接輸入top命令,界面分為兩部分:
?頂部:系統(tǒng)整體信息(CPU使用率、內(nèi)存占用、進(jìn)程總數(shù))
?底部:進(jìn)程列表(默認(rèn)按CPU使用率排序)
1.常用交互快捷鍵:
?P:按CPU使用率降序排序(找"吃CPU"的進(jìn)程)
?M:按內(nèi)存使用率降序排序(找"吃內(nèi)存"的進(jìn)程)
?k:輸入進(jìn)程PID,發(fā)送信號終止進(jìn)程(無需單獨用kill)
?q:退出top
適用場景:服務(wù)器卡頓、程序無響應(yīng)時,快速定位高資源占用進(jìn)程。
三、htop:top的"增強版顏值擔(dān)當(dāng)"
功能定位:htop是top的升級版,界面更友好、操作更直觀,還支持鼠標(biāo)交互,新手優(yōu)先推薦!

優(yōu)勢特性:
?彩色顯示:不同類型進(jìn)程用不同顏色區(qū)分(如系統(tǒng)進(jìn)程、用戶進(jìn)程)
?支持鼠標(biāo):直接點擊表頭排序(CPU、內(nèi)存列)、點擊進(jìn)程選擇操作
?功能更全:自帶進(jìn)程樹視圖、快速殺死進(jìn)程按鈕
安裝與使用:
?安裝(以CentOS為例):yum install -y htop
?啟動:直接輸入htop,操作和top類似,上手無門檻。
適用場景:習(xí)慣可視化操作的用戶,或需要更清晰進(jìn)程分類的場景。
四、pstree:查看進(jìn)程樹的"家族圖譜"
功能定位:pstree(Process Tree)以樹形結(jié)構(gòu)顯示進(jìn)程間的父子關(guān)系,能清晰看到進(jìn)程的"家族脈絡(luò)"。

核心用法:
?pstree:顯示簡單進(jìn)程樹
?pstree -p:顯示進(jìn)程樹并附帶PID(括號內(nèi)數(shù)字)
示例:查看nginx的進(jìn)程樹(了解主進(jìn)程與工作進(jìn)程關(guān)系)
|
pstree -p | grep nginx
|
?pstree -u:顯示進(jìn)程樹并標(biāo)注所屬用戶
適用場景:分析進(jìn)程間的依賴關(guān)系(如查看某個進(jìn)程的子進(jìn)程是否正常啟動)。
五、kill:控制進(jìn)程的"信號使者"
功能定位:kill通過發(fā)送信號(Signal)來控制進(jìn)程,比如停止、重啟進(jìn)程,核心不是"殺死",而是"傳遞指令"。
常用信號與命令:
|
信號值
|
信號名
|
作用
|
|
1
|
SIGHUP
|
重啟進(jìn)程(如nginx配置生效)
|
|
9
|
SIGKILL
|
強制殺死進(jìn)程(無法抗拒)
|
|
15
|
SIGTERM
|
優(yōu)雅停止進(jìn)程(默認(rèn),允許收尾)
|
示例:
?優(yōu)雅停止PID為1234的java進(jìn)程:kill 1234(默認(rèn)發(fā)送15信號)
?強制殺死卡死的進(jìn)程:kill -9 1234
?重啟nginx:kill -1 $(cat /var/run/nginx.pid)(通過PID文件獲取PID)
六、pgrep:快速定位進(jìn)程PID的"搜索利器"
功能定位:pgrep(Process Grep)能根據(jù)進(jìn)程名、用戶等條件快速篩選PID,避免手動在ps結(jié)果中grep。
核心用法:
?pgrep nginx:直接返回所有nginx進(jìn)程的PID
?pgrep -u root java:查找root用戶運行的java進(jìn)程PID
?pgrep -l nginx:返回PID +進(jìn)程名(更直觀)
示例:結(jié)合kill快速殺死進(jìn)程
|
kill -9 $(pgrep nginx)#批量強制殺死所有nginx進(jìn)程
|
實用組合技巧:1+1>2
1.實時跟蹤特定進(jìn)程:用top過濾進(jìn)程
|
top -p $(pgrep nginx | tr 'n' ',')#只監(jiān)控nginx進(jìn)程
|
1.查看進(jìn)程完整命令行:ps結(jié)合PID
|
ps -p 1234 -f#查看PID=1234進(jìn)程的完整啟動命令
|
1.批量停止同類型進(jìn)程:pgrep+kill
|
kill -15 $(pgrep python)#優(yōu)雅停止所有python進(jìn)程
|
工具選擇總結(jié)
|
需求場景
|
推薦工具
|
|
快速看進(jìn)程快照
|
ps
|
|
實時監(jiān)控資源
|
top/htop
|
|
查進(jìn)程父子關(guān)系
|
pstree
|
|
找進(jìn)程PID
|
pgrep
|
|
控制進(jìn)程(停/啟)
|
kill
|
如果是新手,建議從htop+pgrep+kill組合開始,上手快、效率高;熟悉后再用ps和pstree滿足復(fù)雜場景需求。
你平時用得最多的Linux進(jìn)程管理工具是哪個?有沒有私藏的小技巧?歡迎在評論區(qū)分享~
-
Linux
+關(guān)注
關(guān)注
88文章
11789瀏覽量
219382 -
進(jìn)程
+關(guān)注
關(guān)注
0文章
211瀏覽量
14553 -
程序調(diào)試
+關(guān)注
關(guān)注
6文章
15瀏覽量
9985
發(fā)布評論請先 登錄
Linux系統(tǒng)下進(jìn)程的幾種狀態(tài)介紹
Linux使用Systemd管理進(jìn)程服務(wù)
Linux使用Systemd管理進(jìn)程服務(wù)
Linux進(jìn)程間通信(IPC)全解析:從管道到?Socket,一篇講透
解析Linux的進(jìn)程、線程和協(xié)程
Linux進(jìn)程管理
基于Linux進(jìn)程管理的詳細(xì)剖析
有效管理進(jìn)程的8個Linux命令分享
Linux進(jìn)程管理:什么是進(jìn)程?進(jìn)程的生命周期
學(xué)會Linux進(jìn)程管理的方法
Linux進(jìn)程管理不用愁!這6個工具幫你搞定90%場景
評論