संक्षिप्त जवाब:
bad
: यह Systemd Unit files
सक्षम स्थिति दिखाता है
- आप इस तरह के संदेशों को उन प्रणालियों पर देखेंगे जो उपयोग करते हैं
systemd
आप कमांड का उपयोग कर स्थिति को जांच सकते हैं:
sudo systemctl is-enabled <unit-name>
अगर उस इकाई फ़ाइल एक देशी systemd सेवा है तो यह उत्पादन दे देंगे enabled
, disabled
आदि यदि यह एक देशी systemd सेवा नहीं है तो यह की तरह एक संदेश की रिपोर्ट दे देंगे।
sudo systemctl is-enabled apache2
apache2.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install is-enabled apache2
enabled
लेकिन कमांड के साथ:
systemctl status apache2
or
service apache2 status
यह स्थिति देता है bad
। (शायद यह इसलिए है क्योंकि यह एक पूर्ण संदेश को प्रिंट करने में सक्षम नहीं है या डेवलपर ने प्रिंट करने का फैसला किया है bad
)
लंबा जवाब:
सिस्टम यूनिट फाइलें क्या हैं?
इकाइयाँ ऐसी वस्तुएँ हैं जिन्हें सिस्टमड जानता है कि कैसे प्रबंधन करना है। ये मूल रूप से सिस्टम संसाधनों का एक मानकीकृत प्रतिनिधित्व है जो डेमन के सूट द्वारा प्रबंधित किया जा सकता है और प्रदान की गई उपयोगिताओं द्वारा हेरफेर किया जा सकता है। यह अमूर्त सेवाओं, नेटवर्क संसाधनों, उपकरणों, फाइल सिस्टम माउंट और पृथक संसाधन पूल के लिए इस्तेमाल किया जा सकता है। आप यहाँ और यहाँ systemd इकाइयों के बारे में विस्तार से पढ़ सकते हैं
उदाहरण:
systemctl status apache2
* apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
`-apache2-systemd.conf
Active: active (running) since Wed 2016-10-12 14:29:42 UTC; 17s ago
Docs: man:systemd-sysv-generator(8)
Process: 1027 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
systemctl यह जाँच करेगा apache2
कि कोई मूल इकाई है या नहीं। यदि नहीं, तो यह systemd-sysv-generator
यूनिट प्रारूप में एक फ़ाइल बनाने के लिए कहेगा जो मूल इकाइयों के समान समर्थन प्रदान करता है। उपरोक्त उदाहरण में, जनरेट की गई फ़ाइल को रखा गया है
/lib/systemd/system/apache2.service.d/apache2-systemd.conf
Drop-In: /lib/systemd/system/apache2.service.d
`-apache2-systemd.conf
नोट: आप जनरेटर को ढूंढ सकते हैं /lib/systemd/system-generators/systemd-sysv-generator
और आप उसके बारे में अधिक पढ़ सकते हैं
man systemd-sysv-generator
मुख्य बिंदु :
is-enabled NAME...
Checks whether any of the specified unit files are enabled (as with
enable). Returns an exit code of 0 if at least one is enabled,
non-zero otherwise. Prints the current enable status (see table).
To suppress this output, use --quiet.
Table 1. is-enabled output
+------------------+-------------------------+-----------+
|Name | Description | Exit Code |
+------------------+-------------------------+-----------+
|"enabled" | Enabled via | |
+------------------+ .wants/, .requires/ | |
|"enabled-runtime" | or alias symlinks | |
| | (permanently in | 0 |
| | /etc/systemd/system/, | |
| | or transiently in | |
| | /run/systemd/system/). | |
+------------------+-------------------------+-----------+
|"linked" | Made available through | |
+------------------+ one or more symlinks | |
|"linked-runtime" | to the unit file | |
| | (permanently in | |
| | /etc/systemd/system/ | |
| | or transiently in | > 0 |
| | /run/systemd/system/), | |
| | even though the unit | |
| | file might reside | |
| | outside of the unit | |
| | file search path. | |
+------------------+-------------------------+-----------+
|"masked" | Completely disabled, | |
+------------------+ so that any start | |
|"masked-runtime" | operation on it fails | |
| | (permanently in | > 0 |
| | /etc/systemd/system/ | |
| | or transiently in | |
| | /run/systemd/systemd/). | |
+------------------+-------------------------+-----------+
|"static" | The unit file is not | 0 |
| | enabled, and has no | |
| | provisions for enabling | |
| | in the "[Install]" | |
| | section. | |
+------------------+-------------------------+-----------+
|"indirect" | The unit file itself is | 0 |
| | not enabled, but it has | |
| | a non-empty Also= | |
| | setting in the | |
| | "[Install]" section, | |
| | listing other unit | |
| | files that might be | |
| | enabled. | |
+------------------+-------------------------+-----------+
|"disabled" | Unit file is not | > 0 |
| | enabled, but contains | |
| | an "[Install]" section | |
| | with installation | |
| | instructions. | |
+------------------+-------------------------+-----------+
|"bad" | Unit file is invalid or | > 0 |
| | another error occurred. | |
| | Note that is-enabled | |
| | will not actually | |
| | return this state, but | |
| | print an error message | |
| | instead. However the | |
| | unit file listing | |
| | printed by | |
| | list-unit-files might | |
| | show it. | |
+------------------+-------------------------+-----------+
यदि हम कमांड चलाते हैं:
sudo systemctl is-enabled ssh
enabled
sudo systemctl is-enabled docker
enabled
sudo systemctl is-enabled apache2
apache2.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install is-enabled apache2
enabled
आप यह देख सकते हैं कि क्या यूनिट्स सिस्टमड की तरह देशी हैं ssh
और docker
उपरोक्त आउटपुट में यह केवल दिखाए जाएंगे enabled
, और उन यूनिट्स के लिए जो देशी नहीं हैं, apache2
लेकिन फिर भी यह सक्षम bad
है क्योंकि यह इस स्थिति के कारण यहां प्रिंट करने के बजाय इसके साथ संदेश देता है :
+------------------+-------------------------+-----------+
|"bad" | Unit file is invalid or | > 0 |
| | another error occurred. | |
| | Note that is-enabled | |
| | will not actually | |
| | return this state, but | |
| | print an error message | |
| | instead. However the | |
| | unit file listing | |
| | printed by | |
| | list-unit-files might | |
| | show it. | |
+------------------+-------------------------+-----------+
समाधान:
स्थिति bad
समस्या पैदा नहीं करेगी (मुझे यकीन नहीं है कि यह निर्भर करता है) लेकिन यह सभी की कार्यक्षमता प्रदान नहीं करेगा systemctl
। आप उस की अगली रिलीज का इंतजार कर सकते हैं package
जो मूल रूप से समर्थन करेगी systemd
। या आप दिए गए संदर्भों का उपयोग करके अपनी सेवा या किसी अन्य संसाधन के लिए यूनिट फ़ाइल लिख सकते हैं।
आप नीचे दिए गए संदर्भों का उपयोग करके systemd, systemctl और इकाइयों के बारे में विस्तार से पढ़ सकते हैं:
Systemctl
Systemd इकाइयाँ और यहाँ
systemd