Systemd इकाई फाइलों में = - (बराबरी के ऋण) का दस्तावेजीकरण


16

मेरे Archlinux सिस्टम पर, /usr/lib/systemd/system/mdmonitor.serviceफ़ाइल में ये पंक्तियाँ हैं:

[Service]
Environment=  MDADM_MONITOR_ARGS=--scan
EnvironmentFile=-/run/sysconfig/mdadm
ExecStartPre=-/usr/lib/systemd/scripts/mdadm_env.sh
ExecStart=/sbin/mdadm --monitor $MDADM_MONITOR_ARGS

मुझे संदेह है (कुछ googling द्वारा पुष्टि की गई है) कि =-यदि निर्दिष्ट फाइलें अनुपस्थित हैं, तो सेवा विफल नहीं होनी चाहिए। हालाँकि मैं उस व्यवहार को सिस्टमड यूनिट फाइलों के मैनपेज में खोजने में असफल रहा। =-असाइनमेंट के लिए आधिकारिक दस्तावेज कहां है ?


1
ध्यान दें कि यह सिर्फ एक साधारण है =काम, नहीं .INI फ़ाइल असाइनमेंट वाक्य रचना के एक दूसरे प्रकार के।
जेडीबीपी

जवाबों:


21

इसमें प्रलेखित है systemd.exec:

EnvironmentFile=

[...]

पास किया गया तर्क एक पूर्ण फ़ाइल नाम या वाइल्डकार्ड अभिव्यक्ति होना चाहिए, वैकल्पिक रूप से " -" के साथ उपसर्ग , जो इंगित करता है कि यदि फ़ाइल मौजूद नहीं है, तो इसे पढ़ा नहीं जाएगा और कोई त्रुटि या चेतावनी संदेश लॉग नहीं है।

और में systemd.service:

ExecStart=

...

प्रत्येक निर्दिष्ट कमांड के लिए, पहला तर्क एक निष्पादन योग्य के लिए एक पूर्ण पथ होना चाहिए। वैकल्पिक रूप से, यह फ़ाइल नाम कई विशेष वर्णों के साथ उपसर्ग कर सकता है:

तालिका 1. विशेष निष्पादन योग्य उपसर्ग

...

ExecStartPre=, ExecStartPost=

...

यदि उन आदेशों में से कोई भी (उपसर्ग के साथ नहीं -) विफल रहता है, तो बाकी को निष्पादित नहीं किया जाता है और इकाई को विफल माना जाता है।

(एक Systemd निर्देश के लिए सबसे पूर्ण प्रलेखन खोजने के लिए, इसे ऊपर देखें systemd.directives।)


1

इसके अतिरिक्त, एक पंक्ति की तरह

= के बाद -। माउंट

एक और "समान के बराबर" दिखता है-सिन्टैक्स लेकिन इसके बजाय सिर्फ एक After=निर्देशन है जो विशेष प्रणाली इकाई को सूचीबद्ध करता है -.mount, जो रूट माउंट बिंदु है। डॉक्स: https://www.freedesktop.org/software/systemd/man/systemd.special.html#=.mount

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.