การ start service บน ubuntu 16.04 server

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 10-08-2559
ดูแลโดย WIBOON

พบว่าบน ubuntu 16.04 มีการใช้คำสั่ง start ได้หลายวิธี ทั้งที่รองรับแบบเดิมที่มีมาใน ubuntu รุ่นก่อน แต่มีความไม่แน่นอน บางโปรแกรมก็ใช้แบบเดิมได้ บางโปรแกรมต้องสั่งแบบใหม่นี้ ตัวอย่าง เช่น ติดตั้งโปรแกรม shorewall แล้วจะ start service อย่างไร
แบบเดิม หากจะ start service ทำได้ 2 วิธี
1. sudo /etc/init.d/shorewall start
2. sudo service shorewall start
และเมื่อติดตั้งโปรแกรมแล้ว มันแค่แก้ไขค่าในไฟล์คอนฟิกเพื่อให้ start ทุกครั้งที่เปิดเครื่อง แต่ใน ubuntu 16.04 จะไม่เป็นอย่างนั้น
เรามาเรียนรู้วิธีการ start service ของระบบที่เรียกว่า systemd

ขั้นตอน
1.ติดตั้ง package
sudo apt-get install shorewall

2.ตั้งค่าการใช้งานของโปรแกรมโดยการแก้ไข configuration ต่าง ๆ ตามที่โปรแกรมต้องการให้เรียบร้อย ถูกต้อง

3.เปิดใช้งาน
sudo systemctl start shorewall.service

4.ตรวจสอบสถานะ
mama@ubuntu:~$ sudo systemctl status shorewall.service
ผลลัพธ์ อย่างนี้พร้อมใช้งาน

- shorewall.service - Shorewall IPv4 firewall
   Loaded: loaded (/lib/systemd/system/shorewall.service; disabled; vendor prese
   Active: active (exited) since Wed 2016-08-10 10:58:26 ICT; 3s ago
  Process: 2338 ExecStart=/sbin/shorewall $OPTIONS start $STARTOPTIONS (code=exi
 Main PID: 2338 (code=exited, status=0/SUCCESS)

ผลลัพธ์ อย่างนี้ไม่พร้อมใช้งาน

[sudo] password for mama:
- shorewall.service - Shorewall IPv4 firewall
   Loaded: loaded (/lib/systemd/system/shorewall.service; disabled; vendor prese
   Active: inactive (dead)


5.ตั้งค่าให้ shorewall สตาร์ทด้วยเมื่อ reboot เครื่อง server
sudo systemctl enable shorewall.service
ผลลัพธ์

Created symlink from /etc/systemd/system/basic.target.wants/shorewall.service to /lib/systemd/system/shorewall.service.