Skip to main content

การจัดการบริการ (Managing Services) ใน Linux

บทนำ

การจัดการบริการ (services) เป็นหนึ่งในทักษะที่สำคัญในการดูแลรักษาระบบ Linux บริการ (service) ใน Linux คือกระบวนการหรือโปรแกรมที่ทำงานอยู่เบื้องหลังและให้บริการหรือทำงานต่างๆ เช่น การให้บริการเว็บ, การจัดการฐานข้อมูล, การจัดการอีเมล เป็นต้น

ในบทนี้, เราจะเรียนรู้เกี่ยวกับการจัดการบริการใน Linux ด้วยคำสั่งต่างๆ ที่ใช้ในการเริ่มต้น, หยุด, ตรวจสอบสถานะ, และตั้งค่าบริการ

1. การจัดการบริการด้วย systemd

ในระบบ Linux รุ่นใหม่ๆ เช่น Ubuntu, CentOS, และ Debian, ระบบจัดการบริการที่ใช้คือ systemd ซึ่งจัดการการเริ่มต้น (start), หยุด (stop), ตรวจสอบสถานะ (status), และตั้งค่าบริการต่างๆ

1.1 การเริ่มต้นบริการ (Start a Service)

การเริ่มต้นบริการสามารถทำได้ด้วยคำสั่ง systemctl:

sudo systemctl start <ชื่อบริการ>

ตัวอย่างการเริ่มต้นบริการ Apache:

sudo systemctl start apache2

1.2 การหยุดบริการ (Stop a Service)

เพื่อหยุดบริการ, ใช้คำสั่ง systemctl stop:

sudo systemctl stop <ชื่อบริการ>

ตัวอย่างการหยุดบริการ Apache:

sudo systemctl stop apache2

1.3 การตรวจสอบสถานะของบริการ (Check Service Status)

เพื่อดูสถานะของบริการ, ใช้คำสั่ง systemctl status:

sudo systemctl status <ชื่อบริการ>

ตัวอย่างการตรวจสอบสถานะของบริการ Apache:

sudo systemctl status apache2

1.4 การรีสตาร์ทบริการ (Restart a Service)

หากคุณต้องการเริ่มต้นใหม่หรือรีสตาร์ทบริการ, ใช้คำสั่ง systemctl restart:

sudo systemctl restart <ชื่อบริการ>

ตัวอย่างการรีสตาร์ทบริการ Apache:

sudo systemctl restart apache2

1.5 การเปิดหรือปิดบริการอัตโนมัติในขณะเริ่มต้นระบบ (Enable/Disable Services)

เพื่อให้บริการเริ่มต้นโดยอัตโนมัติเมื่อบูตระบบ, ใช้คำสั่ง systemctl enable:

sudo systemctl enable <ชื่อบริการ>

ตัวอย่างการเปิดบริการ Apache ให้เริ่มต้นเมื่อบูต:

sudo systemctl enable apache2

หากคุณต้องการปิดไม่ให้บริการเริ่มต้นอัตโนมัติ, ใช้คำสั่ง systemctl disable:

sudo systemctl disable <ชื่อบริการ>

1.6 การดูรายชื่อบริการทั้งหมด (List All Services)

เพื่อดูรายชื่อบริการทั้งหมดที่กำลังทำงาน, ใช้คำสั่ง:

systemctl list-units --type=service

1.7 การตรวจสอบบริการที่ถูกเปิดใช้งาน (Check Enabled Services)

เพื่อดูรายการบริการที่ตั้งค่าให้เริ่มต้นอัตโนมัติเมื่อบูต:

systemctl list-unit-files --type=service

2. การจัดการบริการด้วย service (สำหรับระบบเก่า)

ในบางระบบที่ใช้ระบบ init เดิม (เช่น CentOS 6 หรือ Debian 7) สามารถใช้คำสั่ง service สำหรับจัดการบริการได้:

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

sudo service <ชื่อบริการ> start

2.2 การหยุดบริการ

sudo service <ชื่อบริการ> stop

2.3 การตรวจสอบสถานะของบริการ

sudo service <ชื่อบริการ> status

3. การจัดการบริการในโหมด multi-user และ graphical

3.1 การเปลี่ยนโหมด (Runlevels)

ใน Linux, ระบบอาจทำงานในหลายโหมดหรือ "runlevels" ซึ่งแต่ละโหมดจะกำหนดบริการที่จะเริ่มต้น เช่น:

  • Runlevel 3: โหมด multi-user (มีการใช้เครือข่าย)
  • Runlevel 5: โหมด graphical (มีการใช้ GUI)

เพื่อเปลี่ยนโหมด, ใช้คำสั่ง init หรือ systemctl:

sudo init 3     # เปลี่ยนเป็นโหมด multi-user
sudo init 5 # เปลี่ยนเป็นโหมด graphical

3.2 การรีสตาร์ทเครื่อง (Reboot)

คุณสามารถรีสตาร์ทเครื่องเพื่อให้บริการทั้งหมดเริ่มต้นใหม่ได้:

sudo reboot

4. การดูข้อมูลบริการที่ถูกจัดการ

คุณสามารถดูข้อมูลเกี่ยวกับบริการที่กำลังทำงานอยู่ด้วยคำสั่ง systemctl เช่น:

  • ดูการโหลดบริการ:

    systemctl list-units --type=service
  • ดูการทำงานของบริการ:

    systemctl show <ชื่อบริการ>

5. สรุป

การจัดการบริการใน Linux เป็นสิ่งที่สำคัญในการดูแลรักษาระบบ โดยใช้เครื่องมืออย่าง systemctl หรือ service สำหรับการเริ่มต้น, หยุด, ตรวจสอบสถานะ, และตั้งค่าบริการต่างๆ บริการต่างๆ จะช่วยให้ระบบทำงานได้อย่างราบรื่น เช่น บริการเว็บเซิร์ฟเวอร์, บริการฐานข้อมูล, และบริการต่างๆ ที่ทำงานเบื้องหลัง