Tôi đang cố gắng thiết lập một dịch vụ mới (trong Debian Jessie) cần thiết lập một số gắn kết nơi cấu hình mạng được lưu trữ và do đó dịch vụ này phải hoàn thành trước khi bắt đầu dịch vụ mạng.
Tôi đã thử như sau:
[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
Sử dụng systemd-analyze plottôi có thể thấy rằng dịch vụ của tôi bắt đầu, nhưng networking.servicebắt đầu sớm hơn khoảng 3 giây:
Rõ ràng cấu hình của tôi là sai, nhưng tôi đang gặp khó khăn trong việc tìm kiếm vấn đề ... Bất kỳ trợ giúp nào đều được đánh giá cao ..
Cập nhật
Tôi hiện đã giải quyết nó bằng cách thay đổi cấu hình dịch vụ để bắt đầu trước local-fs.targetthay vì 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
Tuy nhiên, tôi muốn hiểu tại sao cấu hình đầu tiên của tôi không hoạt động như mong đợi ...?
/etc/network/interfacescó tham chiếu đến ip-upcác tập lệnh nằm trong một phân vùng khác. Phân vùng đó được gắn bằng một kịch bản phức tạp /opt/intermodul-mounts/start.shmà phải được chạy trước khi mạng đã được thiết lập. Hiện tại, các ip-uptập lệnh không thực sự bắt đầu vì chúng không thể truy cập được khi khởi động. Chạy service networking restartsau đó sẽ hiển thị tất cả các giao diện chính xác.
