0Pricing
Ansible Academy · บทเรียน

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

เริ่ม หยุด และเปิดใช้บริการ

จัดการบริการด้วย systemd เป็นบทเรียน Ansible Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ansible Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน

จัดการบริการที่ทำงานต่อเนื่อง

โมดูล systemd ใช้ควบคุมบริการที่จัดการโดย systemd ซึ่งเป็นระบบเริ่มต้นการทำงานบน Linux รุ่นใหม่ส่วนใหญ่ คุณสามารถใช้โมดูลนี้เพื่อเริ่ม หยุด และเปิดใช้งานบริการเหล่านั้นได้

เริ่มบริการ

ระบุชื่อบริการและตั้งค่า state: started โมดูลจะเริ่มบริการเฉพาะเมื่อบริการยังไม่ได้ทำงานอยู่ จึงทำซ้ำได้โดยไม่เปลี่ยนแปลง

ansible.builtin.systemd:
  name: nginx
  state: started

หยุดบริการ

ใช้ state: stopped เพื่อหยุดบริการ เช่นเคย โมดูลจะทำงานเฉพาะเมื่อบริการกำลังทำงานอยู่ในขณะนั้น

ansible.builtin.systemd:
  name: nginx
  state: stopped

เริ่มใหม่และโหลดใหม่

state: restarted จะเริ่มบริการใหม่ทั้งหมด ส่วน reloaded จะอ่านการตั้งค่าใหม่โดยไม่ตัดการเชื่อมต่อ การเริ่มใหม่เป็นค่าเริ่มต้นที่ปลอดภัย

ansible.builtin.systemd:
  name: nginx
  state: restarted

การเริ่มกับการเปิดใช้งานไม่เหมือนกัน

state ควบคุมว่าบริการจะทำงานอยู่ในขณะนี้หรือไม่ ส่วน enabled ควบคุมว่าบริการจะเริ่มโดยอัตโนมัติเมื่อเปิดเครื่องหรือไม่ ทั้งสองค่านี้เป็นอิสระต่อกัน

เปิดใช้งานเมื่อเปิดเครื่อง

ตั้งค่า enabled: true เพื่อให้บริการเริ่มทำงานโดยอัตโนมัติหลังการรีบูต รวมค่านี้กับ started เพื่อให้ครอบคลุมทั้งการทำงานในตอนนี้และในภายหลัง

ansible.builtin.systemd:
  name: nginx
  state: started
  enabled: true

โหลดเดมอน systemd ใหม่

หลังจากเพิ่มไฟล์ยูนิตใหม่ ให้ตั้งค่า daemon_reload: true เพื่อให้ systemd อ่านการตั้งค่าใหม่ก่อนที่คุณจะดำเนินการกับยูนิตนั้น

ansible.builtin.systemd:
  name: myapp
  daemon_reload: true

ยังคงทำซ้ำได้โดยไม่เปลี่ยนแปลง

เมื่อขอให้บริการที่กำลังทำงานอยู่มีสถานะ started คุณจะได้ผลลัพธ์เป็น ok ไม่ใช่ changed โมดูลจะตรวจสอบสถานะปัจจุบันก่อนดำเนินการใด ๆ

ต้องมีสิทธิ์ root

การควบคุมบริการต้องใช้สิทธิ์ จึงควรเพิ่ม become: true หากไม่มีค่านี้ systemd จะปฏิเสธคำสั่งและงานจะล้มเหลว

- name: Enable nginx
  become: true
  ansible.builtin.systemd:
    name: nginx
    enabled: true

ยังมีโมดูล service ด้วย

โมดูล service ทั่วไปทำงานได้กับระบบเริ่มต้นการทำงานหลายแบบ ให้ใช้ systemd โดยตรงเมื่อต้องการตัวเลือกเฉพาะของ systemd เช่น daemon_reload

ทำงานคู่กับตัวจัดการได้ดี

รูปแบบที่ใช้กันทั่วไปคือ restart บริการเฉพาะเมื่อการตั้งค่าเปลี่ยนแปลง ตัวจัดการซึ่งคุณจะได้เรียนรู้ในภายหลังจะเรียกใช้การเริ่มใหม่นี้เมื่อเกิดการเปลี่ยนแปลง

ตรวจสอบอย่างรวดเร็ว

คุณต้องการให้ nginx ทำงานในตอนนี้และทำงานต่อหลังการรีบูตทุกครั้ง

สรุป

โมดูล systemd ใช้เริ่ม หยุด เริ่มใหม่ และเปิดใช้งานบริการ โปรดจำไว้ว่า state หมายถึงการทำงานในตอนนี้ ส่วน enabled หมายถึงการทำงานเมื่อเปิดเครื่อง ⚙️

คำถามที่พบบ่อย

บทเรียน “จัดการบริการด้วย systemd” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “จัดการบริการด้วย systemd” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ansible Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “จัดการบริการด้วย systemd”

เริ่ม หยุด และเปิดใช้บริการ คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ansible Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ansible Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “จัดการบริการด้วย systemd” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ansible Academy นี้ได้ไหม

ได้ บทเรียน Ansible Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โมดูลคืออะไรในความเป็นจริง
  2. ติดตั้งแพ็กเกจด้วยโมดูล package
  3. จัดการบริการด้วย systemd
  4. อ่านเอกสารด้วย ansible-doc
← กลับไปที่ Ansible Academy