บริการไฟล์ต่างๆ ก็มี .บริการ ส่วนขยายและมีคำแนะนำที่จำเป็นโดย ระบบ เพื่อจัดการบริการ
ที่ ระบบ ระบบ 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 ส่วนต่างๆ และคำสั่งที่จัดการบริการ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำแนะนำเกี่ยวกับไฟล์บริการ โปรดอ่านคู่มือเอกสารอย่างเป็นทางการที่พบ ที่นี่ -