systemd "jobs" की कतार के संदर्भ में आंतरिक रूप से संचालित होता है। प्रत्येक कार्य (थोड़ा सा सरल करना) एक विशेष इकाई को रोकने, जांचने, शुरू करने या फिर से शुरू करने की एक क्रिया है ।
जब (उदाहरण के लिए) आप एक सेवा इकाई शुरू करने के लिए systemd को निर्देश देते हैं , तो यह उस लक्ष्य को प्राप्त करने के लिए आवश्यक इकाइयों (सेवा इकाइयों, माउंट इकाइयों, उपकरण इकाइयों, और इसी तरह) के लिए रुकने और नौकरी शुरू करने की एक सूची के अनुसार काम करता है। यूनिट आवश्यकताओं और निर्भरता, उन्हें आदेश देता है, यूनिट ऑर्डरिंग रिश्तों के अनुसार, बाहर काम करता है और (यदि संभव हो तो) किसी भी आत्म-विरोधाभासों को ठीक करता है, और (यदि वह अंतिम चरण सफल होता है) उन्हें कतार में रखता है।
फिर यह "नौकरी" की कल्पना करने की कोशिश करता है।
उपयोगकर्ता xy के सत्र 1 के लिए एक रोक कार्य चल रहा है
इकाई प्रदर्शन नाम यहाँ है Session 1 of user xy
। यह (प्रदर्शन नाम से) एक हो जाएगा सत्र इकाई है, न कि सेवा इकाई। यह उपयोगकर्ता-स्थान लॉगिन सत्र अमूर्तता है जिसे सिस्टमड के logind
प्रोग्राम और इसके PAM प्लगइन्स द्वारा बनाए रखा जाता है। यह (संक्षेप में और सिद्धांत में) उन सभी प्रक्रियाओं का एक समूह है जो उपयोगकर्ता कहीं न कहीं "लॉगिन सत्र" के रूप में चल रहा है।
जो काम इसके खिलाफ किया गया है stop
। और शायद यह एक लंबा समय ले रहा है क्योंकि सिस्टमड लोगों ने सत्र बंद के साथ गलत तरीके से सेशन हैंगअप किया है । वे उत्तरार्द्ध को काम करने के लिए पूर्व को तोड़ते हैं, और जवाब में कुछ लोग पूर्व को काम करने के लिए उत्तरार्द्ध को तोड़ने के लिए सिस्टमड को बदलते हैं। सिस्टमड लोगों को वास्तव में पहचानना चाहिए कि वे दो अलग चीजें हैं।
आपके लॉगिन सत्र में, आपके पास कुछ ऐसा है जो अनदेखा करता है SIGTERM
या जो एक बार इसे देखने के लिए समाप्त होने में लंबा समय लेता है SIGTERM
। विडंबना यह है कि पूर्व कुछ नौकरी-नियंत्रण के गोले का लंबे समय से व्यवहार है। लॉगिन सत्र के नेताओं को समाप्त करने का सही तरीका जब वे ये विशेष नौकरी-नियंत्रण के गोले हैं, तो उन्हें यह बताने के लिए कि सत्र लटका हुआ है , जहां वे अपनी सभी नौकरियों (आंतरिक व्यवस्थापन कार्य के लिए एक अलग तरह की नौकरी) को समाप्त करते हैं और फिर खुद को समाप्त करें।
वास्तव में क्या हो रहा है कि सिस्टमड यूनिट के स्टॉप टाइमआउट की प्रतीक्षा कर रहा है जब तक कि वह रिसॉर्ट नहीं करता SIGKILL
। यह टाइमआउट प्रति यूनिट, निश्चित रूप से विन्यास योग्य है, और इसे कभी भी समाप्त नहीं करने के लिए सेट किया जा सकता है। इसलिए एक व्यक्ति अलग-अलग व्यवहार क्यों देख सकता है।
आगे की पढाई