ฉันใช้ps
คำสั่งเป็นส่วนหนึ่งของแบบฝึกหัดเพื่อระบุกระบวนการที่ทำงานนานกว่าขีด จำกัด ที่กำหนด
ฉันใช้แม่แบบต่อไปนี้เพื่อให้ได้เวลาที่ผ่านไปสำหรับคำสั่งกระบวนการทราบ:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
ฉันสังเกตเห็นว่ากระบวนการทำงานสั้นค่า etime (เวลาที่ผ่านไป) ใช้รูปแบบminutes:seconds
และจากนี้ฉันสามารถกำหนดระยะเวลาที่กระบวนการทำงานได้อย่างง่ายดาย
สำหรับกระบวนการที่ใช้เวลานานมาก (วันยาว) ฉันไม่เข้าใจรูปแบบ
ฉันมีกระบวนการเซิร์ฟเวอร์ MySQL ที่htop
แสดงว่าทำงานเป็นเวลา 126 ชั่วโมง
การดำเนินการให้ฉันมีค่าps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'
9-03:35:32
ฉันเดาได้ดีที่สุดว่านี่หมายถึงบางสิ่ง 9 อย่าง 3 ชั่วโมง 35 นาที 32 วินาที ฉันไม่สามารถทราบได้ว่าหน่วยสำหรับ 9 คืออะไร
กระบวนการที่เป็นปัญหากำลังทำงาน 126 ชั่วโมงประมาณ 5.25 วัน สิ่งนี้ชี้ให้เห็นว่า 9 ในผลลัพธ์ข้างต้นไม่ได้เป็นตัวแทนของวัน พวกเขาไม่สามารถครึ่งวันเช่นเดียวกับ (9 * 12) ชั่วโมง + 3 ชั่วโมง + 35 นาที + 32 วินาทีน้อยกว่า 5 วัน
ฉันจะตีความค่าเวลาที่ผ่านไปที่ฉันเห็นสำหรับกระบวนการที่ใช้เวลานานได้อย่างไร หน่วยใดที่ประกอบไปด้วย 9 ในผลลัพธ์ข้างต้น
etimes
แทนetime
และเปรียบเทียบผลลัพธ์
ps
แสดงหนึ่งหรืออีกอันขึ้นอยู่กับตัวเลือกที่คุณผ่าน