การตั้ง Service รันอัตโนมัติหลัง Reboot บน CentOS 9


ตัวอย่างสมมุติ: สร้าง Service สำหรับรัน Script

เช่น มีไฟล์ /home/mill/run_webviewer.sh ต้องการให้รันทุกครั้งหลังบูต

ขั้นตอน

1.สร้างไฟล์ Service

sudo nano /etc/systemd/system/webviewer.service

ตัวอย่างเนื้อหาไฟล์

[Unit]
Description=Web Viewer Autostart
After=network.target

[Service]
Type=simple
ExecStart=/home/mill/run_webviewer.sh
Restart=always
User=mill

[Install]
WantedBy=multi-user.target

คำอธิบาย

  • After=network.target : รอให้ระบบ Network พร้อมก่อน
  • User=mill : รันในสิทธิ์ของผู้ใช้ mill
  • Restart=always : ให้ Restart อัตโนมัติหากโปรแกรมหยุดทำงาน
  • WantedBy=multi-user.target : รันในโหมดปกติหลังบูต

2.ให้สิทธิ์กับ Script

chmod +x /home/mill/run_webviewer.sh

3.โหลด Service เข้า systemd

sudo systemctl daemon-reload

4.เปิดให้ Service ทำงานอัตโนมัติหลัง Reboot

sudo systemctl enable webviewer.service

5.เริ่มรัน Service ทันที (ไม่ต้อง reboot)

sudo systemctl start webviewer.service

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

sudo systemctl status webviewer.service

หากไม่มี Error แสดงว่าตั้งค่าสำเร็จ

เพิ่มเติม:

  • ถ้าเป็นโปรแกรม GUI ที่ต้องรันใน Desktop Session ต้องใช้วิธีอื่น เช่น .desktop ที่ ~/.config/autostart/
  • วิธีนี้เหมาะกับโปรแกรม Server หรือ Script ที่ไม่ต้องมี GUI เช่น Web Server, Python Script, Shell Script ฯลฯ

, ,