วิธีการแสดงรายการกระบวนการที่ทำงานอยู่ใน Linux และจัดการเหล่านั้น
เผยแพร่แล้ว: 2022-04-04แสดงรายการกระบวนการ Linux - นักพัฒนาใช้แอพพลิเคชั่นที่หลากหลายและรันคำสั่งในเทอร์มินัลทุกวัน
บนระบบ Linux ของคุณ แต่ละแอปพลิเคชันที่คุณใช้หรือคำสั่งที่คุณดำเนินการจะสร้างกระบวนการหรืองาน เพื่อรับประกันประสิทธิภาพของระบบที่ดีที่สุด คุณจะต้องควบคุมกระบวนการในฐานะผู้ดูแลระบบ
การทำงานหลายอย่างพร้อมกันเป็นหนึ่งในคุณสมบัติที่น่าสนใจที่สุดของระบบปฏิบัติการลีนุกซ์ เช่นเดียวกับคอมพิวเตอร์สมัยใหม่โดยทั่วไป ส่งผลให้โปรแกรมจำนวนมากสามารถทำงานพร้อมกันได้
สารบัญ
กระบวนการใน Linux คืออะไร?
เมื่อคุณดำเนินการคำสั่งหรือเปิดแอปพลิเคชันใน Linux จะเริ่มกระบวนการ ในทางกลับกัน แอปพลิเคชันจะสร้างและดำเนินการหลายขั้นตอนสำหรับงานต่างๆ ในขณะที่คำสั่งสร้างเพียงขั้นตอนเดียว
เมื่อคุณเปิดตัวแก้ไข Visual Studio Code ตัวอย่างเช่น คุณเริ่มกระบวนการที่จะยุติ (หรือตาย) เฉพาะเมื่อคุณออกจากหรือยุติแอปพลิเคชัน Visual Studio Code
ในทำนองเดียวกัน เมื่อคุณเรียกใช้คำสั่งในเทอร์มินัล (เช่น curl ifconfig.me) คำสั่งจะเริ่มกระบวนการที่จะยุติเมื่อคำสั่งเสร็จสิ้นหรือถูกยกเลิกเท่านั้น
แต่ละกระบวนการใหม่เริ่มต้นเป็นกระบวนการเบื้องหน้าโดยค่าเริ่มต้น ซึ่งหมายความว่าจะต้องเสร็จสิ้นก่อนที่จะเริ่มกระบวนการใหม่ กระบวนการที่ทำงานอยู่เบื้องหลังทำให้คุณสามารถทำงานอื่นๆ ได้ในเวลาเดียวกัน
แสดงรายการกระบวนการที่ทำงานอยู่ใน Linux
ใช้หนึ่งในสามคำสั่งเพื่อแสดงรายการกระบวนการใน Linux:
- ps – แสดงรายการของกระบวนการทั้งหมด นอกจากนี้ยังสามารถใช้กับตัวเลือกเพื่อให้ได้ผลลัพธ์ที่มีรายละเอียดมากขึ้น
- ด้านบน – แสดงรายการสดของกระบวนการที่ใช้งานอยู่ในปัจจุบัน และอนุญาตให้คุณโต้ตอบกับกระบวนการเหล่านี้ได้โดยการฆ่า หยุด เปลี่ยนลำดับความสำคัญ และอื่นๆ
- htop – ผลลัพธ์ทันทีในผลลัพธ์ที่ใช้งานง่ายพร้อมโอกาสในการมีส่วนร่วมกับกระบวนการ
ใช้ ps
เป็นคำสั่ง
คำสั่ง ps (สถานะกระบวนการ) สร้างสแน็ปช็อตของกระบวนการที่ทำงานอยู่ทั้งหมดในปัจจุบัน เป็นผลให้ไม่เหมือนกับตัวจัดการงานของ Windows ผลลัพธ์สามารถคาดเดาได้
ไวยากรณ์สำหรับคำสั่ง ps มีดังนี้:
ps [options]
ต่อไปนี้คือตัวเลือกคำสั่ง ps ที่ใช้บ่อยที่สุดบางส่วน:
- ก: ทำรายการกระบวนการทั้งหมดที่ทำให้เกิดปัญหากับผู้ใช้ทั้งหมด
- -A, -e: แสดงรายการกระบวนการทั้งหมดบนระบบ
- -a: แสดงรายการกระบวนการทั้งหมด ยกเว้นผู้นำเซสชัน (ผู้ที่มี ID กระบวนการเหมือนกับเซสชัน * ID) และผู้ที่ไม่เกี่ยวข้องกับเทอร์มินัล
- -d: ยกเว้นผู้นำเซสชัน ให้ระบุกระบวนการทั้งหมด
- –deselect, - N: ลบโปรเซสที่ไม่ตรงตามเงื่อนไขที่ผู้ใช้กำหนดออกจากรายการ
- f: ใช้ ASCII art เพื่อแสดงลำดับชั้นของกระบวนการ
- -j: แสดงผลลัพธ์ในรูปแบบงาน
- T: ทำรายการกระบวนการทั้งหมดที่เชื่อมต่อกับเทอร์มินัลนี้
- r: แสดงรายการเฉพาะกระบวนการที่ใช้งานอยู่ในปัจจุบัน
- u: เพิ่มขนาดของเอาต์พุตเพื่อรวมข้อมูลเพิ่มเติม เช่น การใช้ CPU และหน่วยความจำ
- -u: กำหนดผู้ใช้ที่คุณต้องการแสดงรายการกระบวนการ
- x: รวมกระบวนการที่ไม่มี TTY
การรันคำสั่ง ps
โดยไม่มีตัวเลือกใดๆ จะสร้างเอาต์พุตที่คล้ายกับ
หมวดหมู่ต่อไปนี้รวมอยู่ในเอาต์พุตเริ่มต้น:
- PID : หมายเลขประจำตัวกระบวนการ
- TTY : เทอร์มินัลที่กระบวนการทำงาน
- TIME : ระยะเวลาทั้งหมดที่ใช้ในคอมพิวเตอร์ (จำนวนการใช้งาน CPU ทั้งหมด)
- CMD : ชื่อของคำสั่งที่เริ่มกระบวนการ
การใช้ตัวเลือก a, u และ x ร่วมกันจะสร้างผลลัพธ์ที่มีรายละเอียดมากขึ้น
ps aux
เอาต์พุตที่ขยายเพิ่มตอนนี้มีหมวดหมู่ใหม่ดังต่อไปนี้:
- USER: นี่คือชื่อของบุคคลที่ดำเนินการตามกระบวนการ
- %CPU: สัดส่วนของเวลาที่ CPU ใช้งานอยู่
- % MEM: สัดส่วนของหน่วยความจำที่ใช้
- VSZ: การใช้หน่วยความจำเสมือนทั้งหมดของกระบวนการในหน่วยกิโลไบต์
- RSS: “ย่อมาจาก Resident Set Size” ซึ่งหมายถึงจำนวน RAM ที่กระบวนการใช้
- STAT: สถานะปัจจุบันของกระบวนการ
- START: เวลาที่กระบวนการเริ่มต้นขึ้น
เพื่อแสดงกระบวนการที่กำลังดำเนินการอยู่ในลำดับชั้น
ps -axjf
เมื่อใช้ คำสั่ง บนสุด ใน Linux คุณจะได้รับรายการกระบวนการที่กำลังทำงานอยู่
คำสั่งบนสุดแสดงรายการของกระบวนการที่ใช้งานอยู่ในปัจจุบันในการลดลำดับการใช้ CPU ซึ่งหมายความว่ากระบวนการที่ใช้ทรัพยากรมากที่สุดจะอยู่ที่ด้านบนสุดของรายการ:
top
ด้วยอัตราการรีเฟรชเริ่มต้นสามวินาที เอาต์พุตของคำสั่งบนสุดจะรีเฟรชแบบเรียลไทม์ หมวดหมู่ต่อไปนี้ปรากฏในผลลัพธ์ของคำสั่งบนสุด:
- PID (Process Identification Number): นี่คือตัวเลขที่ระบุa
- USER: นี่คือชื่อของบุคคลที่ดำเนินการตามกระบวนการ
- PR: ลำดับความสำคัญของการจัดกำหนดการของกระบวนการ
- NI: กระบวนการนี้มีค่ามาก โดยค่าที่ต่ำกว่าหมายถึงความสำคัญที่สูงกว่า
- VIRT: จำนวนหน่วยความจำเสมือนที่ใช้โดยกระบวนการ
- RES: จำนวนหน่วยความจำภายใน (กายภาพ) ที่กระบวนการใช้
- SHR: การใช้หน่วยความจำที่แชร์ทั้งหมดของกระบวนการ
- R (วิ่ง) หรือ S (สลีป): สถานะของกระบวนการ
- %CPU: เปอร์เซ็นต์ของเวลาที่ CPU ใช้งานอยู่
- %MEM: เปอร์เซ็นต์การใช้หน่วยความจำ
- TIME+: จำนวนเวลา CPU ที่ใช้ทั้งหมด
- COMMAND: คำสั่งที่เริ่มต้นขั้นตอน
ใช้ตัวเลือกต่อไปนี้เพื่อโต้ตอบกับคำสั่งบนสุดหรือแก้ไขรูปแบบเอาต์พุตในขณะที่กำลังทำงาน:
top [option]
- c: แสดงเส้นทางกระบวนการอย่างครบถ้วน
- d: ตั้งค่าอัตราการรีเฟรชเอาต์พุตเป็นค่าที่กำหนดเอง (เป็นวินาที)
- h: เปิดเมนูวิธีใช้ขึ้นมา
- k: ระบุ PID เพื่อฆ่ากระบวนการ
- M: เรียงลำดับรายการตามจำนวนหน่วยความจำที่ใช้
- N: เรียงลำดับรายการตาม PID
- r: ระบุ PID เพื่อเปลี่ยนค่า nice (ลำดับความสำคัญ) ของกระบวนการ
- z: เน้นกระบวนการที่ทำงานอยู่โดยเปลี่ยนสีเอาต์พุต
- q: ออกจากพรอมต์คำสั่ง
การใช้ คำสั่ง htop ใน Linux คุณอาจเห็นว่ากระบวนการใดกำลังทำงานอยู่
คำสั่ง htop ให้ผลลัพธ์เหมือนกับคำสั่งบนสุด แต่ในลักษณะที่เป็นมิตรต่อผู้ใช้และเข้าใจได้ง่ายกว่า
เนื่องจากคำสั่งนี้ไม่รวมอยู่ในลีนุกซ์ลีนุกซ์ส่วนใหญ่ คุณจึงต้องติดตั้งด้วยตัวเอง:
sudo apt install htop
ใช้
htop
คำสั่งให้ผลลัพธ์ต่อไปนี้:
ในการโต้ตอบกับคำสั่ง htop ให้กดปุ่มต่อไปนี้:
เลื่อนรายการกระบวนการในแนวตั้งและแนวนอนโดยใช้ปุ่มทิศทาง
- F1: แสดงเมนูช่วยเหลือ
- F2: เปิดการตั้งค่าคำสั่ง htop
- F3: พิมพ์ชื่อของกระบวนการเพื่อค้นหา
- F4: เรียงลำดับรายการกระบวนการตามชื่อ
- F5: เลือกว่าจะให้แสดงลำดับชั้นของกระบวนการเป็นรายการที่เรียงลำดับหรือแบบต้นไม้
- F6: จัดเรียงกระบวนการตามคอลัมน์
- F7: ลดค่าที่ดีของกระบวนการ (เพิ่มลำดับความสำคัญ)
- F8: ลดค่าที่ดีของกระบวนการ (ลดลำดับความสำคัญลง)
- F9: ยุติกระบวนการที่เลือกในปัจจุบัน
- F10: ปิดพรอมต์คำสั่ง
บทสรุป
การรู้วิธีแสดงรายการกระบวนการทำงานทั้งหมดในระบบปฏิบัติการ Linux ของคุณเป็นสิ่งสำคัญ เมื่อคุณต้องการจัดการกระบวนการ ความเชี่ยวชาญนี้จะเป็นประโยชน์
ในการปรับแต่งเอาต์พุตและลักษณะการทำงานของคำสั่ง ให้ใช้ตัวเลือกคำสั่งที่มี