ฉันรู้ว่าพวกเขาทั้งหมดเป็นไฟล์หน่วย แต่ฉันไม่สามารถเข้าใจความหมายพิเศษของพวกเขา ฉันคิดว่าเป้าหมายนั้นคล้ายกับ daemons และซ็อกเก็ตเหมือนกันกับซ็อกเก็ต (IP + พอร์ต) แต่ยังมีหมายเลขไอโหนด ใครช่วยอธิบายด้วยคำพูดง่ายๆได้บ้าง?
ฉันรู้ว่าพวกเขาทั้งหมดเป็นไฟล์หน่วย แต่ฉันไม่สามารถเข้าใจความหมายพิเศษของพวกเขา ฉันคิดว่าเป้าหมายนั้นคล้ายกับ daemons และซ็อกเก็ตเหมือนกันกับซ็อกเก็ต (IP + พอร์ต) แต่ยังมีหมายเลขไอโหนด ใครช่วยอธิบายด้วยคำพูดง่ายๆได้บ้าง?
คำตอบ:
A unit configuration file whose name ends in .service encodes information about a process controlled and supervised by systemd.
หน่วยบริการ Systemd คือหน่วยที่ดำเนินการและติดตามโปรแกรมและ daemons จริง ๆ และมีการใช้การอ้างอิงเพื่อให้แน่ใจว่าบริการจะเริ่มขึ้นในลำดับที่ถูกต้อง เป็นหน่วยประเภทที่ใช้บ่อยที่สุด
A unit configuration file whose name ends in ".socket" encodes information about an IPC or network socket or a file system FIFO controlled and supervised by systemd, for socket-based activation.
หน่วยซ็อกเก็ตในทางกลับกันไม่ได้เริ่ม daemons ด้วยตนเอง แต่พวกเขานั่งอยู่ตรงนั้นและฟังที่อยู่ IP และพอร์ตหรือซ็อกเก็ตโดเมน UNIX และเมื่อมีบางสิ่งเชื่อมต่ออยู่ภูตที่ซ็อกเก็ตจะเริ่มทำงานและการเชื่อมต่อจะถูกส่งไป
สิ่งนี้มีประโยชน์สำหรับการตรวจสอบให้แน่ใจว่า daemons ขนาดใหญ่ที่ใช้ทรัพยากรจำนวนมาก แต่ไม่ค่อยได้ใช้ไม่ได้ทำงานและใช้ทรัพยากรอยู่ตลอดเวลา แต่จะเริ่มต้นเมื่อจำเป็นเท่านั้น
A unit configuration file whose name ends in ".target" encodes information about a target unit of systemd, which is used for grouping units and as well-known synchronization points during start-up.
เป้าหมายใช้สำหรับการจัดกลุ่มและการสั่งซื้อหน่วย พวกมันค่อนข้างจะเทียบเท่ากับระดับน้ำท่วมที่เป้าหมายที่แตกต่างกันบริการที่แตกต่างซ็อกเก็ตและหน่วยอื่น ๆ จะเริ่มขึ้น ซึ่งแตกต่างจาก runlevels พวกเขามีรูปแบบอิสระมากขึ้นและคุณสามารถสร้างเป้าหมายของคุณเองสำหรับการสั่งซื้อหน่วยและเป้าหมายมีการพึ่งพาระหว่างกัน
ตัวอย่างเช่นmulti-user.target
สิ่งที่ daemons ส่วนใหญ่ถูกจัดกลุ่มไว้ใต้และต้องbasic.target
เปิดใช้งานซึ่งหมายความว่าบริการทั้งหมดที่จัดกลุ่มไว้ภายใต้basic.target
จะเริ่มต้นก่อนที่จะเข้าmulti-user.target
มา
เอกสารสำหรับ systemd นั้นยอดเยี่ยมสำหรับโครงการที่ค่อนข้างใหม่ ในการเริ่มต้นด้วยเป้าหมายจากman systemd.target
:
หน่วยเป้าหมายไม่เสนอฟังก์ชันเพิ่มเติมใด ๆ นอกเหนือจากฟังก์ชันทั่วไปที่มีให้โดยหน่วย มีเพียงการจัดกลุ่มหน่วยผ่านการพึ่งพา (มีประโยชน์เป็นเป้าหมายการบูต) และเพื่อสร้างชื่อมาตรฐานสำหรับจุดการซิงโครไนซ์ที่ใช้ในการพึ่งพาระหว่างหน่วย เหนือสิ่งอื่นใดหน่วยเป้าหมายคือการเปลี่ยนที่ยืดหยุ่นมากขึ้นสำหรับ SysV runlevels ในระบบ init SysV แบบคลาสสิก
"กลุ่มของหน่วย" เหล่านี้ครอบคลุมอาเรย์ของฟังก์ชั่นที่แตกต่างกันbasic.target
ซึ่งส่วนใหญ่ครอบคลุมการบูทระบบผ่านไปจนถึงทุก ๆ ช่วงจาก dbus, gettys, จุดเมานท์เพื่อสลับและตัวจับเวลา คุณสามารถดูรายการทั้งหมดด้วยman systemd.special
คุณสามารถดูรายการเต็มรูปแบบกับ
service files เป็นหน่วยพื้นฐานสำหรับกระบวนการทำงานที่ควบคุมโดย systemd อีกครั้งจากman systemd.service
:
ไฟล์การกำหนดค่าหน่วยที่ชื่อลงท้ายด้วย. บริการเข้ารหัสข้อมูลเกี่ยวกับกระบวนการที่ควบคุมและดูแลโดย systemd
เหล่านี้ประกอบด้วย daemons ที่สามารถเริ่มต้นหยุดรีสตาร์ทโหลดใหม่
ในที่สุดซ็อกเก็ตจากman systemd.socket
:
ไฟล์คอนฟิกูเรชันหน่วยที่ชื่อลงท้ายด้วย ".socket" เข้ารหัสข้อมูลเกี่ยวกับ IPC หรือซ็อกเก็ตเครือข่ายหรือระบบไฟล์ FIFO ควบคุมและดูแลโดย systemd สำหรับการเปิดใช้งานซ็อกเก็ต
เหล่านี้ครอบคลุมซ็อกเก็ตในระบบไฟล์หรือบนอินเทอร์เน็ตเช่นเดียวกับ FIFO แบบคลาสสิกเช่นเดียวกับการขนส่ง แต่ละหน่วยซ็อกเก็ตมีหน่วยบริการที่ตรงกันซึ่งจะเริ่มขึ้นหากมีการเชื่อมต่อครั้งแรกในซ็อกเก็ตหรือ FIFO
นอกจากนี้ในman
หน้ามันเป็นสิ่งที่ควรค่าแก่การอ่านชุดบทความในบล็อกของ Lennart, systemd สำหรับผู้ดูแลระบบซึ่งจะให้ข้อมูลเชิงลึกเกี่ยวกับสถาปัตยกรรมและการใช้งาน systemd (ปัจจุบันมี 20 บทความในซีรีส์)
man
หน้าsystemd เป็นแบบอย่าง: คุณเคยดูman systemd.{service,socket,target}
บ้างไหม?