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 ช่วยให้ผู้ดูแลระบบสามารถเริ่มต้น, หยุด, รีสตาร์ท, และตรวจสอบสถานะของบริการต่างๆ ได้อย่างมีประสิทธิภาพ