การจัดการ Service ด้วย systemctl บน Ubuntu Server 25.10

การจัดการ Service ด้วย systemctl บน Ubuntu Server 25.10

ในระบบ Ubuntu Server 25.10 การจัดการบริการของระบบ (Service) เช่น Apache, Docker, SSH, MySQL หรือ Nginx จะใช้ระบบที่เรียกว่า systemd เป็นตัวควบคุมหลัก และเครื่องมือที่ผู้ดูแลระบบใช้ในการสั่งงานก็คือคำสั่ง systemctl

systemctl เป็นเครื่องมือสำคัญสำหรับ System Administrator เพราะใช้สำหรับ

  • เริ่มต้น Service
  • หยุด Service
  • รีสตาร์ท Service
  • ตรวจสอบสถานะ
  • ตั้งค่าให้ Service ทำงานอัตโนมัติเมื่อเครื่องบูต

บทความนี้จะสรุปคำสั่งที่ SysAdmin ใช้บ่อยที่สุด พร้อมตัวอย่างที่สามารถนำไปใช้ได้ทันที


ก่อนเริ่มใช้งานควรมี

  • Ubuntu Server 25.10
  • สิทธิ์ sudo
  • เข้าใช้งานผ่าน Terminal / SSH
  • มี Service ที่ติดตั้งอยู่แล้ว เช่น ssh, apache2, docker

ตัวอย่าง Service ที่เราจะใช้ทดสอบ

ssh
apache2
docker
 

1. ตรวจสอบสถานะ Service

คำสั่งพื้นฐานที่ใช้บ่อยที่สุดคือ ตรวจสอบว่า Service ทำงานอยู่หรือไม่

systemctl status ssh

ตัวอย่างผลลัพธ์

● ssh.service – OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service)
Active: active (running)
ความหมาย
สถานะ ความหมาย
active (running) Service ทำงานอยู่
inactive Service ปิดอยู่
failed Service ทำงานผิดพลาด

2. เริ่มต้น Service (Start)

หาก Service ยังไม่ได้เริ่มทำงาน สามารถใช้คำสั่ง

sudo systemctl start apache2

ตัวอย่าง

sudo systemctl start docker
 

ใช้สำหรับ

  • เริ่ม Web Server
  • เริ่ม Database
  • เริ่ม Container Service

3. หยุด Service (Stop)

ใช้สำหรับหยุด Service

sudo systemctl stop apache2
 

ตัวอย่าง

sudo systemctl stop docker
 

เหมาะสำหรับ

  • Maintenance
  • Update Software
  • Debug ระบบ

4. รีสตาร์ท Service (Restart)

หากแก้ไขไฟล์ config แล้ว ต้องรีสตาร์ท Service

sudo systemctl restart apache2
 

ตัวอย่าง

sudo systemctl restart ssh
 

ใช้บ่อยหลังแก้ไขไฟล์

/etc/apache2/apache2.conf
/etc/nginx/nginx.conf
/etc/ssh/sshd_config
 

5. Reload Service (ไม่หยุด Service)

บาง Service สามารถ Reload config โดยไม่ต้อง restart

sudo systemctl reload apache2
 

ข้อดี

  • ไม่ทำให้ connection หลุด
  • ใช้กับ Web Server ได้ดี

6. เปิด Service ให้ทำงานตอน Boot

หากต้องการให้ Service เริ่มทำงานทุกครั้งที่เครื่องเปิด

sudo systemctl enable apache2
 

ตรวจสอบว่าเปิด auto start แล้วหรือยัง

systemctl is-enabled apache2
 

ผลลัพธ์

enabled
 

7. ปิด Auto Start

หากไม่ต้องการให้ Service เริ่มตอน Boot

sudo systemctl disable apache2
 

8. ดู Service ทั้งหมดในระบบ

systemctl list-units –type=service
 

ถ้าต้องการดูทั้งหมดแม้ไม่ได้รัน

systemctl list-unit-files –type=service
 

9. ดู Service ที่ล้มเหลว (Failed)

SysAdmin ใช้ตรวจสอบปัญหา

systemctl –failed
 

10. ดู Log ของ Service

ใช้คำสั่ง journalctl

ตัวอย่าง

journalctl -u apache2
 

ดู log ล่าสุด

journalctl -u apache2 -n 50
 

ดูแบบ realtime

journalctl -u apache2 -f
 

ตารางสรุปคำสั่ง systemctl ที่ใช้บ่อย

คำสั่ง หน้าที่
systemctl status service ดูสถานะ
systemctl start service เริ่ม Service
systemctl stop service ปิด Service
systemctl restart service รีสตาร์ท
systemctl reload service Reload config
systemctl enable service เปิด Auto Start
systemctl disable service ปิด Auto Start
systemctl list-units ดู Service ที่รัน
systemctl –failed ดู Service ที่ Error

ตัวอย่าง Workflow ที่ SysAdmin ใช้จริง

ตัวอย่างหลังติดตั้ง Apache

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
 

ทดสอบ Web Server

curl http://localhost
 

เคล็ดลับสำหรับ SysAdmin

ตรวจสอบว่า Service เปิดพอร์ตอะไร

ss -tulpn
 

ตรวจสอบ Service ที่กิน RAM สูง

systemctl status
 

รีสตาร์ท Service ทั้งระบบ

sudo systemctl daemon-reexec
 

⚠️ ใช้เฉพาะกรณีระบบมีปัญหา


สรุป

คำสั่ง systemctl เป็นเครื่องมือสำคัญสำหรับผู้ดูแลระบบ Linux โดยเฉพาะบน Ubuntu Server 25.10 เพราะใช้ควบคุม Service ทุกตัวในระบบ ไม่ว่าจะเป็นการ Start, Stop, Restart, ตรวจสอบสถานะ หรือกำหนดให้ Service ทำงานอัตโนมัติเมื่อเครื่องบูต การเข้าใจคำสั่งเหล่านี้จะช่วยให้ SysAdmin สามารถบริหารจัดการระบบเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพและแก้ไขปัญหาได้รวดเร็วมากขึ้น