मैं एक नई सेवा (डेबियन जेसी के तहत) स्थापित करने की कोशिश कर रहा हूं, जिसमें कुछ माउंट स्थापित करने की आवश्यकता है जहां नेटवर्क कॉन्फ़िगरेशन संग्रहीत है और इस प्रकार नेटवर्किंग शुरू होने से पहले यह सेवा पूरी होनी चाहिए ।
मैंने निम्नलिखित कोशिश की:
[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
बाद में दौड़ना सभी इंटरफेस को सही ढंग से लाता है।