มอนิเตอร์กระบวนการที่ใช้งานง่าย แต่พร้อมใช้งานจริงใน Linux / Unix [ปิด]


8

ฉันกำลังมองหากระบวนการตรวจสอบง่ายๆสำหรับบัญชีของฉันใน VPS ยอดนิยม ฉันรักหัวหน้างานและ Monit แต่พวกเขาดูเหมือนจะเกินความสามารถของฉัน

ฉันต้องการอะไรบางอย่าง

  1. ที่ทำงานเป็น daemon (ดังนั้นบัญชี VPS ของฉันสามารถเริ่มต้นได้ในขณะบู๊ตและยัง "เริ่มต้น" โดย cron ในกรณีที่หน้าจอไม่ทำงาน)
  2. ที่ตรวจสอบโดยการวางไข่สิ่งที่เป็น subprocess (เช่นหัวหน้างาน) หรือโดยการทำคำสั่งการสำรวจที่ส่งกลับจริงหรือเท็จ (เช่น BASH if คำสั่ง)
  3. ทั้งง่ายต่อการใช้งาน (ต้องการการกำหนดค่าน้อยที่สุด) และการผลิตที่มั่นคง ( มีซอฟต์แวร์เพียงไม่กี่ตัวที่ตอบสนองความต้องการทั้งสองอย่าง)
  4. เหมาะสมใน VPS ที่มีการจัดการในโหมดผู้ใช้การใช้หน่วยความจำขั้นต่ำ

คำตอบ:


2

คุณกำลังมองหาโปรแกรมdaemontools (หากนี่คือสิ่งที่คุณหมายถึงโดยมอนิเตอร์ "หัวหน้างาน" คุณสามารถเพิกเฉยต่อคำตอบที่เหลือของฉันได้)

daemontools เป็นชุดเครื่องมือสำหรับการจัดการบริการ UNIX

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

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

มันง่ายยืดหยุ่นและทรงพลังมาก แนวคิดพื้นฐานคือสำหรับแต่ละบริการที่คุณต้องการเรียกใช้ daemontools เปิดตัวกระบวนการลูก (เรียกว่าsupervise) ที่เปิดใช้บริการของคุณแล้ว supervise กำหนดค่าตัวแปรสภาพแวดล้อมของบริการและuid / gidจากนั้นให้มาตรฐานของบริการเข้าและออกมาตรฐานเปิดอยู่เพื่อให้สามารถส่งสัญญาณได้ บริการไม่จำเป็นต้อง daemonize ตัวเองและคุณไม่จำเป็นต้องจัดการไฟล์ pid บริการหลักไม่จำเป็นต้องรูทเพื่อให้ทำงานและคุณสามารถวางไดเรกทอรีของบริการที่ได้รับการตรวจสอบได้ทุกที่


runitจะเป็นทางเลือกแทน daemontools นอกจากนี้ยังง่ายมากและระดับต่ำ โดยพื้นฐานแล้วสิ่งที่คุณต้องใช้ในการเรียกใช้โพรเซสคือไฟล์ที่มีคำสั่ง exec บางคำสั่งเช่นexec sleep 300จากนั้นคุณสร้าง symlink จากไดเรกทอรีที่มีสคริปต์รัน/etc/service/nameและคุณก็เสร็จแล้ว
Tombart

1

คำตอบง่ายๆคือคุณมีอยู่แล้ว - ทุกระบบของ Unix ทำ - init และ / etc / inittab

งานของ init คือการวางไข่กระบวนการที่ระบุไว้ใน inittab ตรวจสอบพวกเขาและเริ่มต้นใหม่ถ้าพวกเขาออก


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.