วิธีการแสดงรายการกระบวนการที่ทำงานอยู่ใน 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

คำสั่งให้ผลลัพธ์ต่อไปนี้:

แสดงรายการกระบวนการ Linux

ในการโต้ตอบกับคำสั่ง htop ให้กดปุ่มต่อไปนี้:

เลื่อนรายการกระบวนการในแนวตั้งและแนวนอนโดยใช้ปุ่มทิศทาง

  • F1: แสดงเมนูช่วยเหลือ
  • F2: เปิดการตั้งค่าคำสั่ง htop
  • F3: พิมพ์ชื่อของกระบวนการเพื่อค้นหา
  • F4: เรียงลำดับรายการกระบวนการตามชื่อ
  • F5: เลือกว่าจะให้แสดงลำดับชั้นของกระบวนการเป็นรายการที่เรียงลำดับหรือแบบต้นไม้
  • F6: จัดเรียงกระบวนการตามคอลัมน์
  • F7: ลดค่าที่ดีของกระบวนการ (เพิ่มลำดับความสำคัญ)
  • F8: ลดค่าที่ดีของกระบวนการ (ลดลำดับความสำคัญลง)
  • F9: ยุติกระบวนการที่เลือกในปัจจุบัน
  • F10: ปิดพรอมต์คำสั่ง

บทสรุป

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