จัดการบริการด้วย systemd
เริ่ม หยุด และเปิดใช้บริการ
จัดการบริการด้วย systemd เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “จัดการบริการด้วย systemd”
เริ่ม หยุด และเปิดใช้บริการ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “จัดการบริการด้วย systemd” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โมดูลคืออะไรในความเป็นจริง
- ติดตั้งแพ็กเกจด้วยโมดูล package
- จัดการบริการด้วย systemd
- อ่านเอกสารด้วย ansible-doc