ฉันกำลังพยายามตั้งค่าบริการใหม่ (ภายใต้ Debian Jessie) ที่ต้องตั้งค่าการติดตั้งบางอย่างที่จัดเก็บการกำหนดค่าเครือข่ายและบริการนี้จะต้องเสร็จสิ้นก่อนที่จะเริ่มระบบเครือข่ายบริการ
ฉันพยายามต่อไปนี้:
[Unit]
Description=mount/repair remaining filesystems (all persistent fs beyond "/")
#Before=network-pre.target
Before=networking.service
[Service]
Type=oneshot
ExecStart=/opt/intermodul-mounts/start.sh
TimeoutSec=0
RemainAfterExit=yes
[Install]
RequiredBy=networking.service
การใช้systemd-analyze plot
ฉันเห็นว่าบริการของฉันเริ่มทำงาน แต่networking.service
เริ่มประมาณ 3 วินาทีก่อนหน้า:
เห็นได้ชัดว่าการตั้งค่าของฉันผิด แต่ฉันมีปัญหาในการค้นหาปัญหา ... ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก ..
ปรับปรุง
ขณะนี้ฉันแก้ไขได้โดยเปลี่ยนการกำหนดค่าบริการให้เริ่มก่อนlocal-fs.target
แทนnetworking.service
:
[Unit]
DefaultDependencies=no
Description=mount/repair remaining filesystems (all persistent fs beyond "/")
Before=local-fs.target
[Service]
Type=oneshot
ExecStart=/opt/intermodul-mounts/start.sh
TimeoutSec=0
RemainAfterExit=yes
[Install]
RequiredBy=local-fs.target
ยังฉันต้องการที่จะเข้าใจว่าทำไมการกำหนดค่าครั้งแรกของฉันไม่ทำงานตามที่คาดไว้ ... ?
/etc/network/interfaces
มีการอ้างอิงถึงip-up
สคริปต์ที่อยู่ในพาร์ติชันอื่น พาร์ติชันนั้นถูกเมาท์ด้วยสคริปต์ที่ซับซ้อน/opt/intermodul-mounts/start.sh
ที่ต้องรันก่อนที่จะตั้งค่าเครือข่าย ขณะนี้ip-up
สคริปต์ไม่เริ่มทำงานอย่างมีประสิทธิภาพเนื่องจากไม่สามารถเข้าถึงได้ในเวลาบูต ทำงานservice networking restart
หลังจากนั้นแสดงอินเตอร์เฟสทั้งหมดอย่างถูกต้อง