Android

คำสั่ง Pstree ใน linux

How to use the pstree command: Linux tip

How to use the pstree command: Linux tip

สารบัญ:

Anonim

เมื่อทำงานกับเครื่อง Linux บางครั้งคุณอาจต้องค้นหาว่ากระบวนการใดกำลังทำงานอยู่ มีจำนวนคำสั่งที่คุณสามารถใช้เพื่อค้นหาข้อมูลเกี่ยวกับกระบวนการที่กำลังทำงานอยู่โดยที่ ps และ top เป็นคำที่ใช้บ่อยที่สุด

เราจะพูดถึง pstree สั่ง pstree มันคล้ายกับ ps แต่แทนที่จะแสดงกระบวนการที่กำลังรันอยู่มันแสดงให้พวกมันเห็นในแผนผัง รูปแบบคล้ายต้นไม้เป็นวิธีที่สะดวกกว่าในการแสดงลำดับชั้นกระบวนการและทำให้ผลลัพธ์น่าสนใจยิ่งขึ้น

วิธีใช้ pstree สั่ง pstree

ไวยากรณ์ทั่วไปสำหรับ pstree สั่ง pstree มีดังนี้:

ps

ในรูปแบบที่ง่ายที่สุดเมื่อเรียกใช้โดยไม่มีตัวเลือกหรืออาร์กิวเมนต์ใด ๆ pstree แสดงโครงสร้างต้นไม้แบบลำดับชั้นของกระบวนการที่กำลังทำงานทั้งหมด:

pstree

systemd─┬─VBoxService───7* ├─accounts-daemon───2* ├─2* ├─atd ├─cron ├─dbus-daemon ├─irqbalance───{irqbalance} ├─2* ├─lvmetad ├─lxcfs───2* ├─networkd-dispat───{networkd-dispat} ├─nginx───2*…

รายการด้านบน / รูทในทรีเป็นกระบวนการหลักของกระบวนการระบบทั้งหมด ในตัวอย่างนี้คือ systemd ซึ่งเป็นกระบวนการแรกที่เริ่มต้นในการบูต

pstree ผสานสาขาที่เหมือนกันโดยวางไว้ระหว่างวงเล็บเหลี่ยมและนำหน้าด้วยจำนวนเต็มที่แสดงถึงจำนวนสาขา สิ่งนี้ทำให้เอาต์พุตอ่านง่ายขึ้นและดึงดูดสายตามากขึ้น

ด้านล่างเป็นตัวอย่างที่แสดงวิธีการใช้วงเล็บเหลี่ยม:

├─2*

เหมือนกับ:

├─agetty ├─agetty

หากต้องการปิดใช้งานการรวมสาขาที่เหมือนกันให้ใช้ตัวเลือก -c :

pstree -c

เธรดของกระบวนการแสดงภายใต้กระบวนการพาเรนต์และแสดงโดยใช้ชื่อกระบวนการภายในเครื่องหมายปีกกา นี่คือตัวอย่าง:

├─lxcfs───2*

ใช้อ็อพชัน -t เพื่อแสดงชื่อเธรดแบบเต็ม หากคุณต้องการซ่อนเธรดและแสดงเฉพาะโปรเซสให้ใช้ตัวเลือก -T

โดยทั่วไปแล้ว pstree จะแสดงเอาต์พุตหลายบรรทัดที่ไม่พอดีกับหน้าจอ หากต้องการดูผลลัพธ์ทีละหนึ่งหน้าให้วาง less คำสั่ง less :

pstree | less

หากชื่อผู้ใช้ถูกกำหนดเป็นอาร์กิวเมนต์ pstree จะแสดงเฉพาะกระบวนการที่เป็นของผู้ใช้นั้น ตัวอย่างเช่นคำสั่งต่อไปนี้จะแสดงเฉพาะกระบวนการที่เริ่มต้นโดยผู้ใช้ชื่อ“ linuxize”:

pstree linuxize

เมื่อ PID ถูกระบุเป็นอาร์กิวเมนต์ pstree จะแสดงทรีที่มีกระบวนการที่กำหนดเป็นรูทของทรี นี่คือตัวอย่าง:

pstree 1943

sshd───bash───pstree

ในการแสดงกระบวนการหลักของกระบวนการที่กำหนดให้ใช้ตัวเลือก -s ตามด้วย PID กระบวนการ:

pstree -s 1943

systemd───sshd───sshd───bash───pstree

แสดง PID และ PGID

โดยปกติเมื่อรัน pstree สั่ง pstree ข้อมูลที่สำคัญที่สุดที่ผู้ใช้ต้องการคือ ID กระบวนการ ตัวอย่างเช่นการรู้จัก PID ช่วยให้คุณสามารถฆ่ากระบวนการทำงานผิดพลาด

อ็อพชัน -p pstree ให้ pstree แสดง PID:

pstree -p

PID แสดงในวงเล็บหลังแต่ละโพรเซสหรือเธรด

systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956) │ ├─{VBoxService}(957) │ ├─{VBoxService}(958) │ ├─{VBoxService}(959) │ ├─{VBoxService}(960) │ ├─{VBoxService}(961) │ └─{VBoxService}(962)…

โดยค่าเริ่มต้น pstree เรียงลำดับกระบวนการที่มีผู้ปกครองเดียวกันตามชื่อ ตัวเลือก -n บอก pstree ให้ใช้การเรียงลำดับตัวเลขเช่นเรียงลำดับตาม PID:

pstree -pn

ID กลุ่มกระบวนการหรือ PGIDs เป็น ID กระบวนการของสมาชิกรายแรกของกลุ่มกระบวนการ ในการดู PGID ให้ใช้ตัวเลือก -g :

pstree -g

PID ยังแสดงในวงเล็บหลังแต่ละกระบวนการหรือเธรด

systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ └─{VBoxService}(954)…

เมื่อมีการแสดง PID หรือ PGID การรวมจะถูกปิดใช้งานโดยปริยาย

แสดงอาร์กิวเมนต์บรรทัดคำสั่ง

บางโปรแกรมสามารถเรียกใช้โดยมีตัวเลือกการกำหนดค่าที่ระบุไว้เป็นอาร์กิวเมนต์บรรทัดคำสั่ง

โดยค่าเริ่มต้น pstree จะไม่แสดงอาร์กิวเมนต์บรรทัดคำสั่งสำหรับกระบวนการทำงาน ในการดูว่ากระบวนการเริ่มต้นอย่างไรให้ใช้คำสั่งพร้อมกับตัวเลือก -a :

pstree -a

… ├─agetty -o -p -- \\u --keep-baud 115200, 38400, 9600 ttyS0 vt220 ├─agetty -o -p -- \\u --noclear tty1 linux…

ไฮไลต์

pstree ยังช่วยให้คุณสามารถเน้นกระบวนการเพื่อให้เห็นภาพได้ดีขึ้น

ตัวเลือก -h pstree ให้ pstree เพื่อเน้นกระบวนการปัจจุบันและบรรพบุรุษทั้งหมด

pstree -h

หากต้องการเน้นกระบวนการเฉพาะให้ใช้ตัวเลือก -H ตามด้วย ID กระบวนการ:

pstree -H PID_NUMBER

หากไม่สนับสนุนการไฮไลต์คำสั่งจะออกโดยมีข้อผิดพลาด

ข้อสรุป

pstree สั่ง pstree แสดงกระบวนการที่กำลังทำงานอยู่ในรูปแบบของโครงสร้างแบบต้นไม้

สำหรับข้อมูลเกี่ยวกับตัวเลือก pstree ทั้งหมดที่มีให้พิมพ์ man pstree ในเทอร์มินัลของคุณ

สถานีปลายทาง