मैंने सिस्टमड उपयोगकर्ता सेवा फ़ाइलों के एक जोड़े को लिखा है जो मैं चाहता हूं कि उपयोगकर्ता सक्षम हों और जिन्हें कार्यशील नेटवर्क कनेक्शन की आवश्यकता हो। मैंने सोचा था कि यह जितना आसान होगा:
Wants=network-online.target
After=network-online.target
हालाँकि, सेवाएं बहुत जल्दी शुरू होती हैं, और journalctl
मैं देखता हूं:
network-online.target: Cannot add dependency job, ignoring: Unit network-online.target failed to load: No such file or directory.
फिर मैंने और खोज की और कोशिश की
Wants=network.target
After=network.target
और किया sudo systemctl enable systemd-networkd-wait-online.service
।
अब मेरे पास है journalctl
:
network.target: Cannot add dependency job, ignoring: Unit network.target failed to load: No such file or directory.
और फिर से सेवा बहुत जल्दी शुरू होती है।
क्या वह संदेश वहाँ होना चाहिए? मैं अपनी समस्या को कैसे मिटा सकता हूं?
संपादित करें : कारण सरल है और विशेष रूप से आर्क विकी में कहा गया है :
systemd --user
प्रक्रिया से एक अलग प्रक्रिया के रूप में चलताsystemd --system
है। उपयोगकर्ता इकाइयां सिस्टम इकाइयों पर संदर्भ या निर्भर नहीं कर सकती हैं।
यह मंच पोस्ट एक सरल समाधान का सुझाव देता है: मुझे link
एक उपयोगकर्ता के रूप में आवश्यक सिस्टम यूनिट चाहिए , इस प्रकार यह यूनिट सर्च पथ पर उपलब्ध सिम्कलिन का निर्माण करता है।
ऐसा करने के बाद, मुझे कोई No such file or directory
संदेश दिखाई नहीं देता है , हालाँकि, मैं अभी भी नेटवर्क ऑनलाइन होने के बाद वास्तव में चलने वाली सेवाओं को नहीं बना सकता। मैं जोड़ने की कोशिश की है network.target
, network-online.target
और systemd-networkd-wait-online.service
, मेरे इकाइयों की स्थापना कोई सफलता के साथ उनमें से प्रत्येक पर निर्भर रहना,। जब मैं उपयोगकर्ता मोड में लिंक्ड यूनिट की स्थिति की जांच करता हूं, तो वे सभी उनमें से कुछ मृत हैं, उदाहरण के लिए:
$ systemctl --user status network.target
● network.target - Network
Loaded: loaded (/usr/lib/systemd/system/network.target; linked; vendor preset: enabled)
Active: inactive (dead)
Docs: man:systemd.special(7)
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
$ systemctl status network.target
● network.target - Network
Loaded: loaded (/usr/lib/systemd/system/network.target; static; vendor preset: disabled)
Active: active since Sat 2015-07-18 19:20:11 MSK; 3h 35min ago
Docs: man:systemd.special(7)
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
Jul 18 19:20:11 calc-server systemd[1]: Reached target Network.
Jul 18 19:20:11 calc-server systemd[1]: Starting Network.
हालाँकि, मैं network-online.target
इसे लिंक करने के बाद उपयोगकर्ता मोड में सक्रिय देख सकता हूँ :
$ systemctl --user status network-online.target
● network-online.target - Network is Online
Loaded: loaded (/usr/lib/systemd/system/network-online.target; linked; vendor preset: enabled)
Active: active since Sun 2015-07-19 00:35:38 MSK; 2min 48s ago
Docs: man:systemd.special(7)
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
Jul 19 00:35:38 calc-server systemd[469]: Reached target Network is Online.
Jul 19 00:35:38 calc-server systemd[469]: Starting Network is Online.