Skip to main content

การใช้ System Services ใน Linux

บทนำ

ในระบบปฏิบัติการ Linux, System Services (หรือที่เรียกว่า Daemons) คือกระบวนการที่ทำงานในพื้นหลังและให้บริการต่างๆ เช่น การจัดการเครือข่าย, การควบคุมการเข้าใช้ระบบ, การทำงานของเครื่องพิมพ์ และอื่นๆ บทนี้จะสอนวิธีการตรวจสอบ, เริ่มต้น, หยุด, และจัดการ system services ใน Linux ด้วยคำสั่งที่ใช้บ่อย เช่น systemctl, service, และ journalctl

1. การตรวจสอบสถานะของ System Services

1.1 การใช้คำสั่ง systemctl

คำสั่ง systemctl ใช้ในการจัดการกับ services ที่ทำงานบนระบบ Linux ที่ใช้ systemd เป็น init system

1.1.1 การตรวจสอบสถานะของ service

systemctl status service_name
  • service_name คือชื่อของ service ที่ต้องการตรวจสอบ
  • คำสั่งนี้จะให้ข้อมูลเกี่ยวกับสถานะของ service เช่น การทำงานอยู่หรือไม่ และ PID ของกระบวนการ

ตัวอย่าง:

systemctl status apache2

1.2 การใช้คำสั่ง service

ในบางระบบที่ใช้ init.d หรือ upstart คำสั่ง service อาจใช้ในการจัดการ system services

service service_name status

ตัวอย่าง:

service apache2 status

2. การเริ่มต้น, หยุด, และการรีสตาร์ท Service

2.1 การเริ่มต้น Service

2.1.1 การใช้ systemctl

systemctl start service_name
  • service_name คือชื่อของ service ที่ต้องการเริ่มต้น

ตัวอย่าง:

systemctl start apache2

2.1.2 การใช้ service

service service_name start

ตัวอย่าง:

service apache2 start

2.2 การหยุด Service

2.2.1 การใช้ systemctl

systemctl stop service_name
  • service_name คือชื่อของ service ที่ต้องการหยุด

ตัวอย่าง:

systemctl stop apache2

2.2.2 การใช้ service

service service_name stop

ตัวอย่าง:

service apache2 stop

2.3 การรีสตาร์ท Service

2.3.1 การใช้ systemctl

systemctl restart service_name
  • service_name คือชื่อของ service ที่ต้องการรีสตาร์ท

ตัวอย่าง:

systemctl restart apache2

2.3.2 การใช้ service

service service_name restart

ตัวอย่าง:

service apache2 restart

3. การเปิดหรือปิดการเริ่มต้น Service อัตโนมัติเมื่อระบบบูต

3.1 การเปิดการเริ่มต้น Service อัตโนมัติ

3.1.1 การใช้ systemctl

systemctl enable service_name
  • service_name คือชื่อของ service ที่ต้องการให้เริ่มต้นอัตโนมัติเมื่อระบบบูต

ตัวอย่าง:

systemctl enable apache2

3.2 การปิดการเริ่มต้น Service อัตโนมัติ

3.2.1 การใช้ systemctl

systemctl disable service_name
  • service_name คือชื่อของ service ที่ต้องการปิดการเริ่มต้นอัตโนมัติ

ตัวอย่าง:

systemctl disable apache2

4. การดูบันทึกของ System Services

4.1 การใช้คำสั่ง journalctl

คำสั่ง journalctl ใช้ในการดูบันทึกของ systemd ซึ่งเก็บข้อมูลเกี่ยวกับ service ต่างๆ ที่ทำงานในระบบ

4.1.1 การดูบันทึกทั้งหมด

journalctl

คำสั่งนี้จะแสดงบันทึกของทุกกระบวนการที่ทำงานบนระบบ

4.1.2 การดูบันทึกของ service เฉพาะ

journalctl -u service_name
  • service_name คือชื่อของ service ที่ต้องการดูบันทึก

ตัวอย่าง:

journalctl -u apache2

4.1.3 การดูบันทึกล่าสุด

journalctl -u service_name -n 50
  • -n 50 จะดูบันทึกล่าสุด 50 รายการ

ตัวอย่าง:

journalctl -u apache2 -n 50

4.1.4 การดูบันทึกในช่วงเวลาที่กำหนด

journalctl --since "YYYY-MM-DD HH:MM:SS" --until "YYYY-MM-DD HH:MM:SS"
  • ใช้คำสั่งนี้เพื่อดูบันทึกในช่วงเวลาที่กำหนด

ตัวอย่าง:

journalctl --since "2023-05-01 00:00:00" --until "2023-05-02 00:00:00"

5. การจัดการการทำงานของ Services โดยใช้ systemd Directly

5.1 การรีโหลด Configuration ของ Service

บางครั้งเมื่อทำการแก้ไขไฟล์การตั้งค่าของ service ต้องทำการรีโหลดการตั้งค่าของ service โดยใช้คำสั่ง

systemctl reload service_name

ตัวอย่าง:

systemctl reload apache2

5.2 การรีโหลด Systemd Configuration

หากมีการเปลี่ยนแปลงไฟล์การตั้งค่าของ systemd (เช่น เพิ่มหรือแก้ไข service ใหม่) สามารถใช้คำสั่งนี้เพื่อให้ systemd รับรู้การเปลี่ยนแปลง

systemctl daemon-reload

6. สรุป

การจัดการ System Services ใน Linux เป็นสิ่งที่จำเป็นในการดูแลและควบคุมการทำงานของระบบ การใช้เครื่องมืออย่าง systemctl, service, และ journalctl ช่วยให้ผู้ดูแลระบบสามารถเริ่มต้น, หยุด, รีสตาร์ท, และตรวจสอบสถานะของบริการต่างๆ ได้อย่างมีประสิทธิภาพ