ไฟล์บริการ Systemd

Fil Brikar Systemd



บน Linux เอาต์พุตสถานะ systemctl แสดงว่าบริการถูกโหลดผ่านไฟล์ที่เรียกว่าไฟล์บริการ ไฟล์เหล่านี้สามารถเข้าถึงได้ใน /lib/systemd/system หรือ /etc/systemd/system ไดเรกทอรี

บริการไฟล์ต่างๆ ก็มี .บริการ ส่วนขยายและมีคำแนะนำที่จำเป็นโดย ระบบ เพื่อจัดการบริการ







ที่ ระบบ ระบบ init จัดการการเริ่มต้นระบบโดยใช้ หน่วย - หน่วยคือออบเจ็กต์ที่ดำเนินงานหรือการดำเนินการ เช่น การจัดการบริการ ซึ่งเกี่ยวข้องกับการควบคุมและการตรวจสอบ หน่วยเหล่านี้เป็นไฟล์ที่เรียกว่าไฟล์บริการที่มีการขึ้นต่อกันของหน่วยและคำสั่ง ไฟล์เหล่านี้มีความสำคัญอย่างยิ่งต่อการควบคุมกระบวนการเบื้องหลังและการจัดการทรัพยากรอย่างมีประสิทธิภาพ



ในคู่มือนี้ ฉันจะสำรวจไฟล์บริการ systemd โครงสร้าง และคำสั่งหลักที่ควบคุมบริการ



เมื่อทำงานกับ systemd เงื่อนไข ไฟล์บริการ systemd และ ไฟล์หน่วย systemd มักใช้แทนกันได้ เพราะในทางเทคนิคแล้วคำเหล่านี้หมายถึงสิ่งเดียวกัน





ไฟล์ Systemd Service คืออะไร

บน Linux systemd จัดการบริการโดยใช้ไฟล์บริการที่มีคำแนะนำในการกำหนดค่าเพื่อให้ systemd สามารถเข้าใจและดำเนินการได้

หากต้องการแสดงรายการหน่วย ให้ใช้ systemctl กับ –รายการหน่วย สั่งการ.



ระบบ --รายการหน่วย

หากต้องการอ่านไฟล์บริการของบริการใด ๆ ให้ใช้ แมว คำสั่งกับพาธไฟล์

แมว - - บริการไฟล์เส้นทาง -

เช่น หากต้องการดูไฟล์บริการของ ssh.บริการ ใช้คำสั่งที่กำหนด

แมว - lib - ระบบ - ระบบ - ssh.บริการ

กายวิภาคของไฟล์บริการ Systemd

โดยทั่วไป ไฟล์หน่วยบริการ systemd จะมีสามส่วน

  • หน่วย
  • บริการ
  • ติดตั้ง

ไฟล์หน่วยบริการเฉพาะจะมีส่วนเฉพาะที่เรียกว่า บริการ ส่วน.

โปรดทราบว่าบริการเป็นเพียงประเภทของหน่วย ยูนิตสามารถมีประเภทต่างๆ ได้ เช่น ซ็อกเก็ต อุปกรณ์ การติดตั้ง การเมาท์อัตโนมัติ การสลับ เป้าหมาย ตัวจับเวลา สไลซ์ และขอบเขต ส่วนเหล่านี้อยู่ระหว่างส่วนหน่วยและส่วนการติดตั้ง นามสกุลไฟล์จะถูกแทนที่ด้วยประเภทหน่วยที่เกี่ยวข้อง เช่น ประเภทหน่วยซ็อกเก็ตจะมี .เบ้า นามสกุลไฟล์.

บันทึก: ในคู่มือนี้ ฉันจะเน้นไปที่ประเภทหน่วยบริการเนื่องจากมีการใช้งานอย่างกว้างขวางโดยผู้ดูแลระบบและนักพัฒนา

ส่วนเหล่านี้อยู่ในวงเล็บเหลี่ยม ([]) แต่ละส่วนจะมีชุดคำสั่งที่เกี่ยวข้อง โครงสร้างทั่วไปของไฟล์บริการได้รับด้านล่าง

- หน่วย -

คำสั่ง1 = คำแนะนำ 1

คำสั่ง2 = คำแนะนำ 2

- บริการ -

คำสั่ง1 = คำแนะนำ 1

คำสั่ง2 = คำแนะนำ 2

- ติดตั้ง -

คำสั่ง1 = คำแนะนำ 1

คำสั่ง2 = คำแนะนำ 2

ลำดับของส่วนสามารถเปลี่ยนแปลงได้ อย่างไรก็ตาม โดยทั่วไปจะปฏิบัติตามคำสั่งดังกล่าว

[หน่วย] ส่วน

ส่วนของหน่วยประกอบด้วยคำอธิบายของหน่วยและการขึ้นต่อกันของหน่วย ตามแบบแผน ส่วนนี้จะถูกวางไว้ที่ด้านบนของไฟล์บริการ คำสั่งที่ใช้กันทั่วไปมีดังต่อไปนี้:

คำสั่ง คำอธิบาย
คำอธิบาย คำสั่งนี้ใช้เพื่อกล่าวถึงชื่อของบริการ ความยาวของคำอธิบายต้องไม่เกิน 80 ตัวอักษร
เอกสารประกอบ คำสั่งนี้มีหน้าคนหรือ URL ของบริการ
กำหนดให้มี คำสั่งนี้ใช้เพื่อกล่าวถึงการพึ่งพาบริการปัจจุบัน หากไม่ได้เปิดใช้งานบริการอ้างอิงนี้ บริการปัจจุบันจะไม่เริ่มต้น
ต้องการ คำสั่งนี้ใช้เพื่อกล่าวถึงการพึ่งพาบริการปัจจุบัน อย่างไรก็ตาม ไม่จำเป็นต้องเปิดใช้งานบริการอ้างอิงนี้เพื่อใช้บริการปัจจุบัน
ก่อน หลังจากเปิดใช้งานหน่วยปัจจุบันแล้ว บริการที่กล่าวถึงในคำสั่งนี้จะเริ่มต้นขึ้น
หลังจาก ก่อนที่หน่วยปัจจุบันจะเปิดใช้งาน บริการที่กล่าวถึงในคำสั่งนี้จะเริ่มต้นขึ้น
BindsTo คำสั่งนี้เชื่อมโยงบริการปัจจุบันกับบริการดังกล่าว หากบริการที่เชื่อมโยงรีสตาร์ท บริการปัจจุบันก็จะรีสตาร์ทเช่นกัน

นอกเหนือจากคำสั่งเหล่านี้แล้ว ยังมีคำสั่งอีกสองคำสั่ง; เงื่อนไข และ ยืนยัน. บริการจำนวนมากจำเป็นต้องมีเงื่อนไขระบบเฉพาะเพื่อให้ทำงานได้สำเร็จ และคำสั่งเหล่านี้ใช้เพื่อกล่าวถึงเงื่อนไขต่างๆ

[ติดตั้ง] ส่วน

ส่วนนี้ไม่บังคับและจำเป็นเฉพาะเมื่อบริการจำเป็นต้องเปิดใช้งานหรือปิดใช้งานขณะบู๊ต นอกจากนี้ยังกล่าวถึงบริการนามแฝงด้วย คำสั่งที่ใช้กันทั่วไปสำหรับส่วนการติดตั้งมีดังต่อไปนี้:

คำสั่ง คำอธิบาย
ต้องการโดย คำสั่งนี้กำหนดระดับการทำงาน - เป้าหมายของการบริการ หากตั้งเป้าหมายไว้แล้ว ผู้ใช้หลายรายเป้าหมาย จากนั้นบริการจะเปิดใช้งานในระดับการทำงานนี้
จำเป็นโดย คำสั่งนี้มีความคล้ายคลึงกับ WantedBy อย่างไรก็ตาม แม้ว่าจะไม่มีการขึ้นต่อกันที่กล่าวถึงในคำสั่งก็ตาม บริการก็จะเปิดใช้งานได้
นามแฝง คำสั่งนี้ใช้เพื่อเปิดใช้งานบริการด้วยชื่ออื่น Symlink จะถูกสร้างขึ้นด้วยชื่อนี้เมื่อเปิดใช้งานบริการ

ส่วนใหญ่แล้ว ผู้ใช้หลายรายเป้าหมาย ถูกใช้เป็น ต้องการโดย พารามิเตอร์. แต่ multi-user.target คืออะไร?

multi-user.target แสดงถึงสถานะของระบบที่พร้อมที่จะยอมรับเซสชันที่มีผู้ใช้หลายคนที่ไม่ใช่แบบกราฟิก เป็นสถานะก่อนเปิดตัว GUI

ระบบมีระดับการทำงานที่แตกต่างกัน มาเรียนรู้เกี่ยวกับการทำงานของระดับการทำงานเหล่านี้กันดีกว่า

ใน systemd บริการจะถูกจัดกลุ่มตามระดับการทำงานซึ่งเรียกว่า เป้าหมาย - แต่ละระดับการรันมีไฟล์ด้วย .เป้า ส่วนขยายใน /etc/systemd/system ไดเรกทอรี บริการจะทำงานตามสถานะของระดับการทำงาน

ระดับการวิ่ง เป้าหมาย สถานะ ไฟล์
0 ปิด ปิดเครื่องและปิดเครื่อง poweroff.เป้าหมาย
1 กู้ภัย สตาร์ทเชลล์ช่วยเหลือ กู้ภัย.เป้าหมาย
2,3,4 ผู้ใช้หลายคน เริ่มเชลล์ที่ไม่ใช่ GUI แบบผู้ใช้หลายคน ผู้ใช้หลายรายเป้าหมาย
5 แบบกราฟิก สร้างเชลล์ GUI แบบหลายผู้ใช้ graphical.เป้าหมาย
6 รีบูต ปิดเครื่องและรีสตาร์ท รีบูตเป้าหมาย

[บริการ] ส่วน

ส่วนนี้ประกอบด้วยการตั้งค่าการกำหนดค่าสำหรับบริการ การกำหนดค่าหลักของส่วนนี้คือการกำหนดประเภทและคำสั่งที่จะดำเนินการเมื่อเริ่มต้นบริการ พิมพ์ และ เอ็กเซ็กสตาร์ท เป็นคำสั่งหลักที่ใช้ในการตั้งค่าบริการ

บริการประเภทต่างๆ แสดงอยู่ในตารางต่อไปนี้

ประเภทบริการ คำอธิบาย
เรียบง่าย เป็นประเภทเริ่มต้นเมื่อไม่ได้กล่าวถึงประเภทหรือ Busname และกล่าวถึงเฉพาะ ExecStart เท่านั้น systemd ดำเนินการกระบวนการหลักก่อนแล้วจึงติดตามหน่วย
การฟอร์ก ประเภทนี้ใช้เพื่อให้บริการทำงานต่อไปแม้ว่าบริการหลักจะปิดอยู่ก็ตาม มันแยกกระบวนการลูกหลังจากการปิดกระบวนการหลัก
นัดเดียว systemd ดำเนินการกระบวนการหลักก่อน และเมื่อกระบวนการหลักออกจากหน่วยติดตามผลจะเริ่มขึ้น
ดีบัส บริการที่มี dbus ใช้เพื่อสื่อสารกับกระบวนการอื่นบนบัส หากมีการกล่าวถึงชื่อบัส กระบวนการจะถูกเปิดใช้งานหลังจากได้รับชื่อบัสแล้ว
แจ้ง บริการจะแจ้งให้ทราบเมื่อเริ่มดำเนินการ systemd จะดำเนินการไปยังหน่วยติดตามผลหลังจากได้รับการแจ้งเตือน
ไม่ได้ใช้งาน จะให้บริการจนกว่าจะมีการจัดส่งงานที่กำลังดำเนินอยู่ทั้งหมด มีประโยชน์เป็นหลักในการปรับปรุงเอาต์พุตคอนโซล

คำสั่งที่ใช้กันทั่วไปในส่วนบริการมีการกล่าวถึงด้านล่าง:

คำสั่ง คำอธิบาย
เอ็กเซ็กสตาร์ท มันเก็บเส้นทางแบบเต็มของคำสั่งที่จะดำเนินการเพื่อเริ่มกระบวนการ
ExecStartPre มันเก็บคำสั่งที่ควรดำเนินการก่อนที่กระบวนการหลักจะเริ่มต้น
ExecStartPost มันเก็บคำสั่งที่ควรดำเนินการหลังจากกระบวนการหลักเริ่มต้นขึ้น
ExecReload มันเก็บคำสั่งเพื่อโหลดการกำหนดค่าบริการอีกครั้ง
เริ่มต้นใหม่ เพื่อรีสตาร์ทบริการโดยอัตโนมัติในสถานการณ์ต่างๆ เช่น ล้มเหลว สำเร็จ ผิดปกติ ยกเลิก และเฝ้าระวัง
รีสตาร์ทวินาที เพื่อคงจำนวนวินาทีหลังจากนั้นบริการจะรีสตาร์ทโดยอัตโนมัติ

ที่ เอ็กเซ็กสตาร์ท เป็นหนึ่งในคำสั่งสำคัญที่ใช้ในส่วนบริการ ประกอบด้วย เส้นทางแบบเต็มของปฏิบัติการ ว่าบริการจะดำเนินการเมื่อเรียกใช้

บทสรุป

ไฟล์บริการ systemd เป็นไฟล์กำหนดค่าที่มีโครงสร้างพร้อมคำสั่งและคำสั่งเพื่อให้สามารถจัดการโดย systemd ไฟล์เหล่านี้มีคำแนะนำที่ระบุวิธีการจัดการบริการโดย systemd ในคู่มือนี้ ฉันได้กล่าวถึงวิธีการเข้าถึงไฟล์บริการ systemd ส่วนต่างๆ และคำสั่งที่จัดการบริการ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำแนะนำเกี่ยวกับไฟล์บริการ โปรดอ่านคู่มือเอกสารอย่างเป็นทางการที่พบ ที่นี่ -