มีบางอย่าง ข้อเสีย ของการจัดเก็บ ไฟล์ปกติ ใน /etc/systemd/ระบบ
ไม่ใช่เพราะ systemd เอง แต่เพราะ systemctl
อาศัยอยู่ในสถานที่นี้ การวางไฟล์ทั่วไปในไดเร็กทอรีนี้จะทำให้ฟังก์ชันการทำงานของ systemctl เสียหาย ในกรณีนี้ ความสามารถในการปกปิด .service ของคุณ และไม่มีเหตุผลที่จะเชื่อได้ว่าแอปพลิเคชันอื่นๆ จะจัดการสิ่งนี้แตกต่างไปจากนี้ ตอนนี้ systemd มีชุดที่กำหนดไว้ล่วงหน้าของ เส้นทางการค้นหาหน่วยซึ่งส่วนใหญ่จะหมกมุ่นอยู่กับการ การกระจายซึ่งจะทำให้ตำแหน่งที่คุณสามารถวาง .service โดยพื้นฐานแล้วจำกัดไว้ที่ (หรืออย่างน้อยก็จนกว่าสิ่งนี้จะได้รับการแก้ไข):
/usr/local/lib/systemd/system
ทำงานได้ดีเป็นพิเศษและไม่สูญเสียฟังก์ชันการทำงาน:
# cp -a hello-world.service /usr/local/lib/systemd/system
'hello-world.service' -> '/usr/local/lib/systemd/system/hello-world.service'
# systemctl daemon-โหลดซ้ำ
# dpkg -i สวัสดี world_1.0-1_all.deb
การเลือกแพ็คเกจ hello-world ที่ไม่ได้เลือกไว้ก่อนหน้านี้
(กำลังอ่านฐานข้อมูล ... 396452 ไฟล์และไดเร็กทอรีที่ติดตั้งอยู่ในขณะนี้)
เตรียมแกะ hello-world_1.0-1_all.deb ...
เปิดกล่องสวัสดีโลก (1.0) ...
กำลังตั้งค่า สวัสดีชาวโลก (1.0) ...
สร้าง symlink /etc/systemd/system/multi-user.target.wants/hello-world.service â /usr/local/lib/systemd/system/hello-world.service
# systemctl หน้ากากสวัสดีชาวโลก
สร้าง symlink /etc/systemd/system/hello-world.service â /dev/null
ลำดับเวลาเดียวกันกับดรอปอินเช่นกัน โดยที่ / ฯลฯ
มีความสำคัญเหนือกว่า /วิ่ง
ซึ่งจะมีความสำคัญเหนือกว่า /lib
... และอื่นๆ ส่วนดรอปอินที่มีชื่อต่างกันจะถูกนำไปใช้ตามลำดับพจนานุกรมโดยไม่คำนึงถึงสถานที่ หากคุณมีคำสั่งที่ทับซ้อนกัน คำสั่งสุดท้ายจะมีผลเหนือกว่า:
: systemctl cat สวัสดีชาวโลก
# /lib/systemd/system/hello-world.service
[หน่วย]
คำอธิบาย=สวัสดีชาวโลก (lib)
[บริการ]
Type=วันช็อต
ExecStart=/opt/bin/hello.sh lib
[ติดตั้ง]
WantedBy=multi-user.target
# /usr/local/lib/systemd/system/hello-world.service.d/10-local.conf
[หน่วย]
Description=สวัสดีชาวโลก (ท้องถิ่น)
[บริการ]
ExecStart=
ExecStart=/opt/bin/hello.sh ในเครื่อง
# /etc/systemd/system/hello-world.service.d/override.conf
[บริการ]
ExecStart=
ExecStart=/opt/bin/hello.sh เป็นต้น
: systemctl เริ่มต้นสวัสดีชาวโลก
28 มิ.ย. 15:20:24 betazoid systemd[1]: เริ่มต้น Hello world (ท้องถิ่น)....
28 มิถุนายน 15:20:24 betazoid สวัสดี [402381]: สวัสดี ฯลฯ
28 มิ.ย. 15:20:24 betazoid systemd[1]: hello-world.service: สำเร็จ
28 มิ.ย. 15:20:24 betazoid systemd[1]: จบแล้ว Hello world (local)..