systemd एक नौकरी प्रबंधक है। मैन पेज बहुत सटीक नहीं है कि चीजें कैसे काम करती हैं।
जब आप बूट करते हैं, तो एंकर जॉब के लिए जॉब्स से जुड़े लेन-देन का निर्माण क्या करता है। (यानी डिफॉल्ट के लिए जॉब शुरू करें)। ये सभी निर्भरताएं और रिश्ते क्या परिभाषित करते हैं कि कैसे और क्या नौकरियों को ट्रिगर किया जाएगा। आदेश देना यह निर्धारित करता है कि कौन सी नौकरी (नौकरी) हर दूसरे काम पर इंतजार करेगी। Default.target इकाई इसलिए इस सब के केंद्र में है, यही कारण है कि जब आप इकाइयों को एक रिवर्स निर्भरता का उपयोग करते हुए सक्षम करते हैं, जो कि systemctl enable के माध्यम से एक फाइलसिस्टम प्रतीकात्मक लिंक बनाता है, जो आगे निर्भरता प्रणाली को दर्शाता है, तो यह भी अनुसरण कर सकता है कि आपको सिस्टम की सहानुभूति की आवश्यकता क्यों है। पहले स्थान पर)। ऐसा ही तब है जब आप मैन्युअल रूप से कुछ इकाई शुरू करते हैं, तो वह इकाई लंगर है, और लेन-देन की गणना की जाती है।
बहुत अधिक विस्तार में नहीं, मैं समझाता हूँ कि क्या = और बाद = की आवश्यकता है।
आवश्यकता होती है = सिस्टमड के कारण आवश्यक इकाई के लिए एक स्टार्ट जॉब को ट्रिगर करने के लिए होगा जब आपको एक स्टार्ट जॉब ट्रिगर (स्पष्ट रूप से, या एक निर्भरता के माध्यम से: आंतरिक रूप से कोई अंतर नहीं है) मिलता है। यह इकाई बंद होने पर आप पर एक स्टॉप जॉब को ट्रिगर करने का गुण भी रखता है (नोट: रोका गया, अपने आप नीचे नहीं जा रहा) या फिर से शुरू हुआ। इसका मतलब यह है कि अगर कुछ निर्भरता / systemctl इसे रोकने / पुनः आरंभ करने का कारण बनता है, तो आप भी रोकेंगे / पुनरारंभ करेंगे। हालांकि, अगर यह अपने आप नीचे चला जाता है, तो आप नहीं रुकेंगे, क्योंकि कोई नौकरी नहीं थी, और राज्य परिवर्तन सिस्टमड की भागीदारी के बिना हुआ। यहीं आप BindsTo = का उपयोग करेंगे (डिवाइस इकाइयों के समान, जो स्पष्ट कारणों के लिए सिस्टमड की भागीदारी के बिना निष्क्रिय हो सकते हैं)।
अब, आफ्टर = के उपयोग की सिफारिश की जाती है क्योंकि आवश्यकता के लिए अकेले ही यह पर्याप्त है: यदि जॉब शुरू नहीं होती है तो रिक्वायरमेंट रद्द कर दें। हालांकि यह रद्द करना केवल wrt जॉब का काम करता है, अर्थात यदि दूसरी इकाई ऑर्डरिंग को परिभाषित नहीं करती है, तो systemd समानांतर में दोनों को ट्रिगर करता है, और यदि आपकी स्टार्ट जॉब के पूरा होने से पहले इसकी शुरुआत खत्म हो जाती है, तो इसे रद्द नहीं किया जाएगा (इसे रद्द नहीं किया जा सकता है, वास्तव में) । आफ्टर = के उपयोग का अर्थ है कि अन्य नौकरी आवश्यक इकाई के शुरू होने तक इंतजार करती रहती है, और परिणाम के आधार पर, यदि यह विफल हो जाता है, तो आपकी इकाई की प्रतीक्षा शुरू की नौकरी JOB_DEPENDENCY नौकरी के परिणाम के साथ रद्द कर दी जाती है (आप पीले क्यों पड़ते हैं [DEPEND] ऐसे मामलों के लिए बूट)। इसलिए, यह अमान्य प्रभाव After = के उपयोग के बिना पूर्व निर्धारित है।
यही कारण है कि Wants = without After = का उपयोग करना ठीक है यदि आप अन्य इकाई के स्टार्टअप के लिए इंतजार नहीं करना चाहते हैं: क्योंकि वहां कोई अमान्य नहीं है, इसलिए कोई दौड़ नहीं है। उस मामले में, यह एक तुल्यकालन तंत्र से अधिक नहीं है।
इसके अलावा, आप दोनों को बूट में सक्षम कर सकते हैं, और एक दूसरे की आवश्यकता नहीं है, और केवल ऑर्डर को परिभाषित करते हैं, उस स्थिति में, जब दोनों को एक ही लेनदेन के हिस्से के रूप में खींचा जाता है, तो उन्हें ऑर्डर दिया जाएगा (या यदि दूसरे के लिए नौकरी शुरू हो जाती है) इकाई के लिए काम करने के बाद वह चलाना चाहता है, यह पहले इसके खत्म होने का इंतजार करेगा, लेनदेन के दौरान)।
अब यदि कोई नौकरी नहीं है, तो आदेश का उक्त इकाई के लिए कोई प्रभाव नहीं है। हालाँकि, आमतौर पर एक नौकरी होती है, इसके लिए निर्भरता के उपयोग की आवश्यकता होती है जैसे = और वांट्स =, या दोनों एक समय में खींचे जाते हैं और कुछ ऑर्डर को परिभाषित करते हैं, जिस स्थिति में वे दूसरी इकाई की नौकरी पर इंतजार करते हैं।