लिनक्स में "सत्र" की परिभाषा क्या है?


12

जब मैं "w" कमांड चलाता हूं, तो मुझे दो उपयोगकर्ता लॉग इन करते दिखाई देते हैं (दोनों मेरे हैं)। यहां एक त्वरित खोज बताती है कि यह सामान्य है क्योंकि "एक एकल उपयोगकर्ता के पास किसी भी समय कई सक्रिय सत्र हो सकते हैं।"

एक सत्र क्या है? जब मैंने केवल एक बार अपने सिस्टम में लॉग इन किया है तो मेरे पास उनमें से दो क्यों हैं?

जवाबों:


9

Sessionआमतौर पर शेल सत्रों को संदर्भित करता है। एक शेल वह है जो आपको कंप्यूटर के साथ बातचीत करने की अनुमति देता है। यह उपयोगकर्ता और कर्नेल के बीच एक सेतु का काम करता है । जब भी आप एक कमांड चलाते हैं, तो वह शेल होता है जो आपके इरादे को पकड़ लेता है और कर्नेल को अपनी बात करने के लिए कहता है।

अधिकांश लिनक्स फ्लेवर में, डिफ़ॉल्ट शेल होता है bashऔर bashहर बार जब आप एक नया टर्मिनल खोलते हैं तो एक नया सत्र लॉन्च किया जाएगा। wआपके द्वारा पोस्ट किए गए आउटपुट में , आपको लगता है कि आपका ग्राफ़िकल लॉगिन सत्र (ऐसा लगता है जैसे आप मशीन ओशिश कर रहे हैं):

argento  :0        18set13 ?xdm?   2days  1.58s gdm-session-worker [pam/gdm-password]

कुछ खुले टर्मिनल एमुलेटर:

argento  pts/0     18set13 29:26m  5:26   5:26  rdesktop -g 1200x700 -u administrator -p XXXXXXXXX -d DOMAIN -K srv-wsus
argento  pts/1     18set13  9days  0.16s  0.16s /bin/bash
argento  pts/2     lun10    5.00s  0.09s  7.55s /usr/bin/python /usr/bin/terminator
argento  pts/3     14:40   33:41   0.09s  0.03s vim notes.txt
argento  pts/4     gio12   26:04m  0.10s  7.55s /usr/bin/python /usr/bin/terminator
argento  pts/5     14:56   17:33   0.11s  0.11s /bin/bash

और आप गैर-ग्राफिकल टैटी से भी लॉग इन करने लगते हैं:

argento  tty2      15:11    1:01   0.09s  0.09s -bash

इनमें से प्रत्येक आपके शेल का एक अलग उदाहरण है और प्रत्येक अपने स्वयं के सत्र के रूप में गिना जाता है।


2

मुझे लगता है कि प्रत्येक टर्मिनल सत्र एक उपयोगकर्ता सत्र है। आपके पास X के तहत एक से अधिक टर्मिनल हो सकते हैं और वे वर्चुअल टर्मिनल हैं, या यू में कंसोल के तहत वास्तविक टर्मिनल हो सकता है। वे सभी सत्र हैं। यह मेरा 'w' है

$ w
 15:14:13 up 9 days,  6:02,  8 users,  load average: 1,03, 1,19, 1,31
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
argento  :0        18set13 ?xdm?   2days  1.58s gdm-session-worker [pam/gdm-password]
argento  pts/0     18set13 29:26m  5:26   5:26  rdesktop -g 1200x700 -u administrator -p XXXXXXXXX -d DOMAIN -K srv-wsus
argento  pts/1     18set13  9days  0.16s  0.16s /bin/bash
argento  pts/2     lun10    5.00s  0.09s  7.55s /usr/bin/python /usr/bin/terminator
argento  pts/3     14:40   33:41   0.09s  0.03s vim notes.txt
argento  pts/4     gio12   26:04m  0.10s  7.55s /usr/bin/python /usr/bin/terminator
argento  pts/5     14:56   17:33   0.11s  0.11s /bin/bash
argento  tty2      15:11    1:01   0.09s  0.09s -bash

दूसरा कॉलम ट्टी दिखाता है, जैसे कि यू देख सकते हैं कि pts xterm है (वर्चुअल टर्मिनल) अन्य (tty2) एक कंसोल लॉगिन है।


2

1. यद्यपि उपयोगकर्ता एकल प्रक्रिया में प्रवेश करते हैं (शेल जो उनकी कमांड लाइन इंटरफ़ेस है), उपयोगकर्ता क्रिया के परिणामस्वरूप कई प्रक्रिया को समाप्त करते हैं:

-> पृष्ठभूमि में गैर-संवादात्मक कार्य चलाना।
-> नौकरी नियंत्रण के माध्यम से इंटरैक्टिव कार्य के बीच स्विच करना।
-> कई प्रक्रिया शुरू करना जो पाइप के माध्यम से एक साथ काम करते हैं।
-> एक्स विंडो सिस्टम जैसे रनिंग विंडोिंग सिस्टम जो कई टर्मिनल विंडो को खोलने की अनुमति देता है।

2. इन सभी प्रक्रियाओं को संभालने के लिए, कर्नेल को इन प्रक्रियाओं में शामिल प्रक्रिया समूह बनाने की आवश्यकता होती है।

3. इन प्रक्रिया समूहों को उपयोगकर्ता के अनुसार आगे बढ़ाने के लिए, इन समूहों को सत्रों में उपयोगकर्ता के अनुसार विभाजित किया जाता है। (ध्यान दें कि उपयोगकर्ता लिनक्स उपयोगकर्ता नहीं है, लेकिन शेल या टर्मिनल उपयोगकर्ता के लिए है। एक ही मशीन पर दो टर्मिनल एक ही उपयोगकर्ता द्वारा लॉग इन करते हैं। 2 अलग-अलग उपयोगकर्ता के लिए खड़ा है और इस प्रकार यहां 2 अलग-अलग उपयोगकर्ता सत्र हैं। एक टर्मिनल केवल एकल सत्र के लिए टर्मिनल को नियंत्रित कर सकता है)।
उस "उपयोगकर्ता" या सत्र के लिए शेल चल रही प्रक्रिया को सत्र नेता के रूप में जाना जाता है।

4. 'x' बटन दबाकर समापन टर्मिनल पर भी ध्यान दें, इससे आप उस टर्मिनल से बाहर नहीं जाएंगे। वह टर्मिनल पृष्ठभूमि में चलता रहता है। यदि आप टर्मिनल से सत्र खत्म करना चाहते हैं, तो आपको CTRL + D दबाकर या बाहर निकल कर लॉगआउट करना होगा।

5. जैसे ही आप टर्मिनल से लॉगआउट होते हैं, कर्नेल सत्र नेता को प्रोसेस करने के लिए SIGHUP सिग्नल (किल -1 के समान) भेजता है। अब टर्मिनल में चल रही हर दूसरी प्रक्रिया इस सत्र के नेता की संतान है। इन बाल प्रक्रियाओं ने प्रक्रिया समूह बनाए थे जो इस सत्र नेता प्रक्रिया (मूल प्रक्रिया) द्वारा नियंत्रित होते हैं।

6. सत्र नेता प्रक्रिया प्रत्येक बच्चे की प्रक्रिया के लिए SITEUP भेजती है, कुछ प्रक्रिया समाप्त हो जाती है, जबकि कुछ समाप्त नहीं कर सकते हैं (जो निलंबित या पृष्ठभूमि में चल रहे हैं)। वे सत्र के ओवरों के रूप में अनाथ नहीं होने का चयन करते हैं और तुरंत init प्रक्रिया (लिनक्स मशीन में सभी प्रक्रिया के माता-पिता) द्वारा अपनाई जाती हैं।


अधिक देखें लिंक के लिए लिनक्स विकास की प्रक्रिया मॉडल


1

एक सत्र एक उपयोगकर्ता की प्रक्रियाओं द्वारा चलाया गया प्रत्येक टर्मिनल शेल है। एक उदाहरण के लिए, मेरे पास अभी 3 सत्र चल रहे हैं। मेरा मेट डेस्कटॉप वातावरण, और मेरे दो टर्मिनल विंडो।

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