การจัดการกระบวนการ (ps, top, kill)
เรียนรู้วิธีแสดงรายการ ตรวจสอบ และยุติกระบวนการที่กำลังทำงานในระบบ พร้อมทำความเข้าใจรหัสและสถานะของกระบวนการ
การจัดการกระบวนการ (ps, top, kill) เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
กระบวนการคืออะไร
ใน Linux กระบวนการคืออินสแตนซ์ของโปรแกรมที่กำลังทำงานอยู่ ทุกคำสั่งที่คุณเรียกใช้และทุกแอปพลิเคชันที่คุณเปิดจะทำงานเป็นกระบวนการหนึ่งกระบวนการหรือมากกว่า
- ระบบปฏิบัติการเป็นผู้จัดการกระบวนการ
- การทำความเข้าใจกระบวนการเป็นสิ่งสำคัญต่อการตรวจสอบสถานะของระบบและการแก้ไขปัญหา
การแสดงรายการโพรเซสด้วย `ps`
คำสั่ง ps (สถานะโพรเซส) ใช้แสดงข้อมูลเกี่ยวกับโพรเซสที่กำลังทำงานอยู่ในขณะนั้น
ตามค่าเริ่มต้น คำสั่งนี้จะแสดงโพรเซสที่เกี่ยวข้องกับเซสชันเทอร์มินัลปัจจุบันของคุณ
ข้อมูลโพรเซสโดยละเอียด (`ps aux`)
หากต้องการดูโพรเซสทั้งหมดที่กำลังทำงานอยู่ในระบบ รวมถึงโพรเซสที่ผู้ใช้อื่นหรือบริการระบบเริ่มทำงาน เราจะใช้ตัวเลือกอย่าง aux หรือ -ef
ps aux: แสดงโพรเซสทั้งหมด รวมถึงโพรเซสที่ไม่ได้เชื่อมต่อกับเทอร์มินัลps -ef: แสดงโพรเซสทั้งหมดในรูปแบบรายการแบบเต็ม
ลองเรียกใช้ ps aux แล้วส่งผลลัพธ์ต่อไปยัง head เพื่อดูสองสามบรรทัดแรก:
ps aux | head -n 5ทำความเข้าใจผลลัพธ์ของ `ps`
ผลลัพธ์จาก ps aux มีคอลัมน์สำคัญหลายคอลัมน์:
- USER: ผู้ใช้ที่เป็นเจ้าของโพรเซส
- PID: รหัสโพรเซส ที่ไม่ซ้ำกัน
- %CPU: เปอร์เซ็นต์การใช้งาน CPU
- %MEM: เปอร์เซ็นต์การใช้งานหน่วยความจำ
- COMMAND: คำสั่งที่เริ่มโพรเซส
PID มีความสำคัญเป็นพิเศษต่อการจัดการโพรเซส
การตรวจสอบแบบเรียลไทม์ด้วย `top`
ขณะที่ ps แสดงภาพรวม ณ ช่วงเวลาหนึ่ง คำสั่ง top จะแสดงมุมมองแบบไดนามิกและเรียลไทม์ของโพรเซสที่กำลังทำงาน
คำสั่งนี้จะอัปเดตข้อมูลอย่างต่อเนื่อง โดยแสดงโพรเซสที่ใช้ทรัพยากรมากที่สุด
การแปลความหมายตัวชี้วัดของ `top`
เมื่อคุณเรียกใช้ top คุณจะเห็นข้อมูลสรุปด้านบนและรายการโพรเซสด้านล่าง
- Load Average: ค่าเฉลี่ยภาระงานของระบบในช่วง 1, 5 และ 15 นาที
- Tasks: จำนวนโพรเซสทั้งหมด โพรเซสที่กำลังทำงาน กำลังพัก หยุดทำงาน และเป็นซอมบี้
- %Cpu(s): การใช้ CPU
- Mem: หน่วยความจำทั้งหมด หน่วยความจำว่าง หน่วยความจำที่ใช้ และหน่วยความจำบัฟเฟอร์
- Process List: คอลัมน์คล้ายกับ
psแต่จัดเรียงอยู่ตลอดเวลา โดยค่าเริ่มต้นจะเรียงตาม CPU
การค้นหาโพรเซสที่ระบุ
คุณสามารถใช้ ps ร่วมกับ grep เพื่อกรองหาโพรเซสที่ต้องการ เช่น การค้นหาโพรเซสทั้งหมดที่เกี่ยวข้องกับ 'bash'
ส่วน grep -v grep ช่วยตัดคำสั่ง grep เองออกจากผลลัพธ์
ps aux | grep -i "bash" | grep -v "grep"การยุติโพรเซสด้วย `kill`
บางครั้งโพรเซสอาจค้างหรือใช้ทรัพยากรมากเกินไป คำสั่ง kill ช่วยให้คุณส่งสัญญาณไปยังโพรเซส โดยทั่วไปเพื่อยุติโพรเซสเหล่านั้น
คุณต้องทราบ PID ของโพรเซสที่ต้องการยุติ
ทำความเข้าใจสัญญาณของ `kill`
เมื่อใช้ kill คุณกำลังส่ง "สัญญาณ" ไปยังโพรเซส สัญญาณเริ่มต้นคือ SIGTERM (15) ซึ่งขอให้โพรเซสปิดการทำงานอย่างเรียบร้อย
kill PID: ส่ง SIGTERMkill -9 PID: ส่ง SIGKILL ซึ่งเป็นการยุติแบบบังคับที่โพรเซสไม่สามารถเพิกเฉยได้ โปรดใช้อย่างระมัดระวัง
คุณสามารถแสดงสัญญาณทั้งหมดที่มีได้ด้วย kill -l:
kill -lตัวอย่างการใช้ `kill`
มาฝึกยุติโพรเซสเบื้องหลังอย่างง่ายกัน เราจะเริ่มคำสั่ง sleep ในเบื้องหลัง ค้นหา PID ของคำสั่ง แล้วใช้ kill เพื่อหยุดคำสั่งนั้น
เรียกใช้โค้ดด้านล่าง หลังจากทำงานแล้ว คุณจะเห็น PID ของโพรเซส sleep จากนั้นให้พิมพ์ kill <PID> ในเทอร์มินัลด้วยตนเอง (แทนที่ <PID> ด้วยหมายเลขจริง) เพื่อหยุดโพรเซส
# Step 1: Start a dummy process in the background
sleep 300 &
echo "Sleep process started. Now finding its PID..."
# Step 2: Find its Process ID (PID)
# Look for the 'sleep' process in the output
ps aux | grep -i "sleep" | grep -v "grep"
# Step 3: To kill it, manually type 'kill <PID>'
# Example: kill 12345ตรวจสอบความเข้าใจอย่างรวดเร็ว: การจัดการโพรเซส
คุณได้เรียนรู้การแสดงรายการ การตรวจสอบ และการยุติโพรเซสแล้ว มาทดสอบความเข้าใจกัน
ทบทวน: การจัดการโพรเซส
ทำได้ดีมาก คุณเชี่ยวชาญคำสั่ง Linux ที่จำเป็นสำหรับการจัดการโพรเซสแล้ว:
ps: แสดงรายการโพรเซสและดูภาพรวมสถานะของโพรเซสtop: ตรวจสอบโพรเซสของระบบและการใช้ทรัพยากรแบบไดนามิกและเรียลไทม์kill: ส่งสัญญาณไปยังโพรเซส โดยหลักแล้วใช้เพื่อยุติโพรเซสอย่างเรียบร้อย (SIGTERM) หรือแบบบังคับ (SIGKILL)
เครื่องมือเหล่านี้มีความสำคัญอย่างยิ่งต่อการดูแลระบบและการแก้ไขปัญหา
คำถามที่พบบ่อย
บทเรียน “การจัดการกระบวนการ (ps, top, kill)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดการกระบวนการ (ps, top, kill)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดการกระบวนการ (ps, top, kill)”
เรียนรู้วิธีแสดงรายการ ตรวจสอบ และยุติกระบวนการที่กำลังทำงานในระบบ พร้อมทำความเข้าใจรหัสและสถานะของกระบวนการ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดการกระบวนการ (ps, top, kill)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การจัดการกระบวนการ (ps, top, kill)
- การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)
- การต่อคำสั่งด้วยไพป์ (|)
- งานเบื้องหลังและการควบคุมงาน