91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux進(jìn)程樹(shù)分析工具pstree詳解與實(shí)戰(zhàn)指南(另一視角優(yōu)化Linux系統(tǒng))

jf_44130326 ? 來(lái)源:Linux1024 ? 2026-02-04 16:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux系統(tǒng)開(kāi)發(fā)與運(yùn)維中,理解進(jìn)程的運(yùn)行狀態(tài)和相互關(guān)系是排查問(wèn)題、優(yōu)化性能的基礎(chǔ)。pstree作為一款輕量高效的進(jìn)程樹(shù)可視化工具,能直觀(guān)展示系統(tǒng)中所有進(jìn)程的父子關(guān)系,為系統(tǒng)分析提供關(guān)鍵線(xiàn)索。本文將從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化,全面講解如何利用pstree掌握系統(tǒng)運(yùn)行狀態(tài)。

wKgZO2kamRSAPrWHAAA-08xmvhs102.png

一、認(rèn)識(shí)pstree:進(jìn)程樹(shù)的"全景地圖"

1.什么是pstree?

pstreeProcess Tree)是Linux系統(tǒng)自帶的進(jìn)程查看工具,它以樹(shù)狀結(jié)構(gòu)展示所有進(jìn)程的父子關(guān)系,清晰呈現(xiàn)進(jìn)程間的派生關(guān)系(父進(jìn)程創(chuàng)建子進(jìn)程的鏈路)。與ps等工具的列表式輸出不同,pstree更擅長(zhǎng)展示"誰(shuí)啟動(dòng)了誰(shuí)",幫助快速定位進(jìn)程的起源。

2.基本用法

?直接執(zhí)行pstree

輸出系統(tǒng)所有進(jìn)程的樹(shù)狀結(jié)構(gòu)(默認(rèn)以當(dāng)前用戶(hù)視角,省略部分重復(fù)進(jìn)程)。

?顯示所有進(jìn)程(包括其他用戶(hù))pstree -a

顯示完整命令行參數(shù),適合定位具體進(jìn)程的啟動(dòng)參數(shù)。

?顯示進(jìn)程PIDpstree -p

標(biāo)注每個(gè)進(jìn)程的PID(進(jìn)程ID),方便后續(xù)操作(如終止進(jìn)程)。

?篩選特定進(jìn)程pstree 進(jìn)程名>

僅展示與目標(biāo)進(jìn)程相關(guān)的子樹(shù)(如pstree lightdm查看桌面管理器相關(guān)進(jìn)程)。

二、解讀pstree輸出:從符號(hào)到結(jié)構(gòu)

pstree的輸出包含特殊符號(hào)和層級(jí)關(guān)系,掌握這些規(guī)則是分析的關(guān)鍵:

1.符號(hào)含義

?─┬─/─└─:樹(shù)狀分支,─┬─表示后續(xù)還有同級(jí)進(jìn)程,─└─表示該分支最后一個(gè)進(jìn)程。

?*[進(jìn)程名]:表示多個(gè)相同進(jìn)程(如2*[dbus-daemon]2個(gè)dbus-daemon進(jìn)程)。

?{線(xiàn)程名}:中括號(hào)內(nèi)的是線(xiàn)程(如3*[{NetworkManager}]表示NetworkManager進(jìn)程有3個(gè)線(xiàn)程)。

?──:進(jìn)程間的父子關(guān)系(如systemd───NetworkManager表示NetworkManagersystemd的子進(jìn)程)。

2.核心結(jié)構(gòu)分析

以之前的輸出為例,整個(gè)進(jìn)程樹(shù)的結(jié)構(gòu)遵循"從系統(tǒng)核心到用戶(hù)應(yīng)用"的層級(jí):

systemd(根進(jìn)程)├─ 系統(tǒng)基礎(chǔ)服務(wù)(NetworkManager、bluetoothd 等)├─ 桌面環(huán)境核心(lightdm→xfce4-session 等)└─ 用戶(hù)進(jìn)程(bash、pstree 等)

?根進(jìn)程:現(xiàn)代Linux中為systemd(替代了傳統(tǒng)的init),是所有進(jìn)程的"祖先"

?系統(tǒng)服務(wù):直接由systemd啟動(dòng),負(fù)責(zé)網(wǎng)絡(luò)、電源、日志等基礎(chǔ)功能。

?用戶(hù)應(yīng)用:通過(guò)桌面環(huán)境(如XFCE)或終端啟動(dòng),位于樹(shù)的最外層。

三、實(shí)戰(zhàn):從pstree信息到系統(tǒng)優(yōu)化

pstree的核心價(jià)值在于幫助識(shí)別冗余進(jìn)程、定位資源浪費(fèi)。結(jié)合其他工具,可實(shí)現(xiàn)精準(zhǔn)優(yōu)化:

1.步驟1:識(shí)別"無(wú)用進(jìn)程"

通過(guò)pstree輸出,先判斷哪些進(jìn)程是當(dāng)前場(chǎng)景下不需要的:

?例:若設(shè)備無(wú)需藍(lán)牙功能,bluetoothd、blueman-applet等進(jìn)程可禁用。

?例:若無(wú)需桌面搜索,tracker-extract、tracker-miner-fTracker組件可關(guān)閉。

2.步驟2:驗(yàn)證資源占用

tophtop確認(rèn)可疑進(jìn)程的資源消耗(避免誤刪關(guān)鍵進(jìn)程):

# 按內(nèi)存排序,查看前 10 個(gè)進(jìn)程ps aux --sort=-%mem |head-10
wKgZO2kamRSASvbUAABZ8E6kYUk350.png
# 按 CPU 排序,查看前 10 個(gè)進(jìn)程ps aux --sort=-%cpu |head-10
wKgZO2kamRSAR0bNAABL2k5m8nU628.png

3.步驟3:臨時(shí)終止進(jìn)程

若確認(rèn)進(jìn)程無(wú)用,可臨時(shí)終止釋放資源(需知道PID或進(jìn)程名):

# 按進(jìn)程名終止(如藍(lán)牙相關(guān)進(jìn)程)pkillwpa_supplicant# 按 PID 終止(更精準(zhǔn),PID 可通過(guò) pstree -p 查看)kill1234 #1234為目標(biāo)進(jìn)程的 PID
wKgZO2kamRSAaYqFAAADrA1LSJ4364.png

4.步驟4:永久禁用自啟動(dòng)服務(wù)

為避免重啟后進(jìn)程再次啟動(dòng),通過(guò)systemctl禁用自啟動(dòng)(適用于systemd管理的服務(wù)):

# 列出所有自啟動(dòng)服務(wù)systemctl list-unit-files --type=service | grep enabled# 禁用無(wú)用服務(wù)(如藍(lán)牙服務(wù))sudo systemctldisablebluetooth.service# 停止當(dāng)前運(yùn)行的服務(wù)sudo systemctl stop bluetooth.service
wKgZO2kamRWAW3sWAAAueTef2ZE340.png

5.進(jìn)階:結(jié)合系統(tǒng)架構(gòu)優(yōu)化

根據(jù)pstree揭示的進(jìn)程依賴(lài),替換資源密集型組件:

?桌面環(huán)境:若xfce4-session及其子進(jìn)程占用過(guò)高,可換更輕量的LXDEi3wm。

?服務(wù)組件:用dnsmasq替代heavyDNS服務(wù),減少后臺(tái)進(jìn)程數(shù)。

四、常見(jiàn)問(wèn)題:從pstree看系統(tǒng)變化

1.為什么進(jìn)程樹(shù)的根是systemd而非init?

傳統(tǒng)LinuxinitSysV init)為根進(jìn)程,但systemd并行啟動(dòng)(加速開(kāi)機(jī))、按需激活服務(wù)(減少資源占用)等優(yōu)勢(shì),已成為主流發(fā)行版的默認(rèn)初始化系統(tǒng)。systemd兼容init接口(通過(guò)符號(hào)鏈接/sbin/init → /usr/bin/systemd),但功能更強(qiáng)大。

2.如何判斷進(jìn)程是否為系統(tǒng)關(guān)鍵進(jìn)程?

?根進(jìn)程systemd絕對(duì)不能終止,否則系統(tǒng)會(huì)崩潰。

?依賴(lài)鏈長(zhǎng)的進(jìn)程(如lightdm→Xorg)通常是桌面環(huán)境核心,終止會(huì)導(dǎo)致圖形界面退出。

?名稱(chēng)含udevlogind、journal等關(guān)鍵詞的進(jìn)程,負(fù)責(zé)設(shè)備管理、登錄會(huì)話(huà)、日志等核心功能,禁用需謹(jǐn)慎。

總結(jié)

pstreeLinux系統(tǒng)分析的"第一視角"工具,通過(guò)它能快速掌握進(jìn)程間的關(guān)系、識(shí)別冗余服務(wù),為系統(tǒng)優(yōu)化提供依據(jù)。實(shí)際使用中,需結(jié)合top、systemctl等工具,形成"識(shí)別驗(yàn)證優(yōu)化"的完整流程。無(wú)論是開(kāi)發(fā)調(diào)試還是運(yùn)維監(jiān)控,熟練解讀進(jìn)程樹(shù)都是提升系統(tǒng)掌控力的關(guān)鍵技能。在排查完之后,可以在源碼中關(guān)掉相關(guān)服務(wù),就不需要進(jìn)入系統(tǒng)再操作了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11756

    瀏覽量

    218997
  • 進(jìn)程
    +關(guān)注

    關(guān)注

    0

    文章

    211

    瀏覽量

    14532
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux系統(tǒng)進(jìn)程的幾種狀態(tài)介紹

    文章對(duì) Linux 系統(tǒng)進(jìn)程的幾種狀態(tài)進(jìn)行介紹,并對(duì)系統(tǒng)出現(xiàn)大量僵尸進(jìn)程和不可中斷進(jìn)程的場(chǎng)景進(jìn)
    發(fā)表于 11-24 16:15 ?1.5w次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>下<b class='flag-5'>進(jìn)程</b>的幾種狀態(tài)介紹

    Linux Shell腳本入門(mén)到實(shí)戰(zhàn)詳解

    Linux Shell腳本入門(mén)到實(shí)戰(zhàn)詳解
    發(fā)表于 02-17 15:03 ?1105次閱讀

    Linux內(nèi)核進(jìn)程管理與調(diào)度:策略優(yōu)化與實(shí)踐分析

    今天給大家上點(diǎn)硬貨,關(guān)于Linux進(jìn)程管理和調(diào)度是學(xué)習(xí)和理解Linux的必學(xué)知識(shí)。為協(xié)調(diào)多個(gè)進(jìn)程 "同時(shí)" 運(yùn)行,現(xiàn)代操作系統(tǒng)通常使用
    發(fā)表于 05-08 09:42 ?1604次閱讀
    <b class='flag-5'>Linux</b>內(nèi)核<b class='flag-5'>進(jìn)程</b>管理與調(diào)度:策略<b class='flag-5'>優(yōu)化</b>與實(shí)踐<b class='flag-5'>分析</b>

    ARM嵌入式Linux系統(tǒng)開(kāi)發(fā)詳解

    Linux技術(shù)的*發(fā)展,全部采用當(dāng)前最流行和穩(wěn)定的Linux發(fā)行版或者相關(guān)工具,是Linux愛(ài)好者學(xué)習(xí)Linux的好幫手?!?/div>
    發(fā)表于 09-14 08:57

    linux系統(tǒng)進(jìn)程存在狀態(tài)及管理

    linux系統(tǒng)進(jìn)程存在狀態(tài)及管理詳解
    發(fā)表于 05-21 06:28

    linux設(shè)備樹(shù)詳解

    linux設(shè)備樹(shù)詳解 2003 年畢業(yè)于中國(guó)科學(xué)技術(shù)大學(xué),電子專(zhuān)業(yè)、軟件專(zhuān)業(yè)...
    發(fā)表于 12-23 08:16

    LINUX 進(jìn)程源代碼分析

    LINUX 進(jìn)程源代碼分析 task_struct 數(shù)據(jù)結(jié)構(gòu)表示進(jìn)程的數(shù)據(jù)結(jié)構(gòu)是struct task_struct。task_struct 結(jié)構(gòu)是
    發(fā)表于 02-09 15:13 ?16次下載

    LINUX進(jìn)程源代碼分析

    近年發(fā)展起來(lái)的開(kāi)放源碼操作系統(tǒng)Linux因?yàn)槠涮赜械拈_(kāi)放源代碼的發(fā)行方式,得到很大的發(fā)展。為開(kāi)發(fā)人員了解操作系統(tǒng)提供了個(gè)很好的平臺(tái),本文對(duì)Linu
    發(fā)表于 04-03 22:49 ?44次下載

    Linux守護(hù)進(jìn)程詳解

    分享到:標(biāo)簽:進(jìn)程控制 Linux 守護(hù)進(jìn)程進(jìn)程 7.3 Linux守護(hù)進(jìn)程 7.3.1 守
    發(fā)表于 10-18 14:24 ?0次下載
    <b class='flag-5'>Linux</b>守護(hù)<b class='flag-5'>進(jìn)程</b><b class='flag-5'>詳解</b>

    Linux系統(tǒng)下init進(jìn)程的前世今生

    Linux系統(tǒng)中的init進(jìn)程(pid=1)是除了idle進(jìn)程(pid=0,也就是init_task)之外另一個(gè)比較特殊的
    發(fā)表于 04-28 17:23 ?1335次閱讀

    Linux CPU的性能應(yīng)該如何優(yōu)化

    Linux系統(tǒng)中,由于成本的限制,往往會(huì)存在資源上的不足,例如 CPU、內(nèi)存、網(wǎng)絡(luò)、IO 性能。本文,就對(duì) Linux 進(jìn)程和 CPU 的原理進(jìn)行
    的頭像 發(fā)表于 01-18 08:52 ?4203次閱讀

    Linux進(jìn)程的概念說(shuō)明

    進(jìn)程Linux 操作系統(tǒng)中最重要的基本概念之,這節(jié)我們將了解學(xué)習(xí) Linux
    發(fā)表于 07-14 14:27 ?1125次閱讀

    Linux進(jìn)程權(quán)限的分析說(shuō)明

     在linux下,關(guān)于文件權(quán)限,大部分人接觸比較多,也比較熟悉了解。但是對(duì)進(jìn)程權(quán)限般知之甚少。本文總結(jié)linux
    發(fā)表于 07-17 10:55 ?1130次閱讀

    你們知道Linux進(jìn)程是怎樣創(chuàng)建的嗎

    樹(shù)的結(jié)構(gòu)。就像下面這樣: ? ? 在Linux中,為了創(chuàng)建個(gè)子進(jìn)程,父進(jìn)程
    的頭像 發(fā)表于 11-09 10:46 ?4072次閱讀
    你們知道<b class='flag-5'>Linux</b>的<b class='flag-5'>進(jìn)程</b>是怎樣創(chuàng)建的嗎

    如何在Linux使用ps/pstree/top命令查看進(jìn)程

    Linux 程序的運(yùn)行實(shí)例稱(chēng)為進(jìn)程。有時(shí)在Linux工作時(shí),您可能需要找出當(dāng)前正在運(yùn)行的進(jìn)程。
    的頭像 發(fā)表于 12-05 17:07 ?2541次閱讀