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 สำหรับการเริ่มต้น, หยุด, ตรวจสอบสถานะ, และตั้งค่าบริการต่างๆ บริการต่างๆ จะช่วยให้ระบบทำงานได้อย่างราบรื่น เช่น บริการเว็บเซิร์ฟเวอร์, บริการฐานข้อมูล, และบริการต่างๆ ที่ทำงานเบื้องหลัง