Was ist die Definition einer "Sitzung" unter Linux?


Antworten:


9

Sessionbezieht sich normalerweise auf Shell-Sitzungen. Mit einer Shell können Sie mit dem Computer interagieren. Es fungiert als Brücke zwischen dem Benutzer und dem Kernel . Wann immer Sie einen Befehl ausführen, ist es die Shell, die Ihre Absicht erfasst und den Kernel anweist, seine Sache zu tun.

In den meisten Linux-Varianten ist die Standard-Shell bashund bashjedes Mal, wenn Sie ein neues Terminal öffnen, wird eine neue Sitzung gestartet. In der Ausgabe von wIhnen, die Sie gepostet haben, scheint Ihre grafische Anmeldesitzung zu sein (es sieht so aus, als würden Sie den Computer verlassen):

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

Einige Open Terminal Emulatoren:

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

Und Sie scheinen sich auch von einem nicht grafischen tty angemeldet zu haben:

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

Jede dieser Instanzen ist eine separate Instanz Ihrer Shell und zählt als eigene Sitzung.


2

Ich denke, dass jede Terminalsitzung eine Benutzersitzung ist. Sie können mehr als ein Terminal unter X haben und dies sind virtuelle Terminals, oder Sie können ein reales Terminal unter der Konsole haben. Das sind alles Sitzungen. Das ist mein '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

Die zweite Spalte zeigt die tty, wie Sie sehen können, sind die Punkte xterm (virtuelles Terminal), die andere (tty2) ist eine Konsolenanmeldung.


2

1. Obwohl sich Benutzer bei einem einzelnen Prozess anmelden (Shell, die ihre Befehlszeilenschnittstelle ist), führen Benutzer am Ende viele Prozesse aus, und zwar aufgrund von Aktionen wie:

-> Nicht interaktive Aufgabe im Hintergrund ausführen.
-> Wechsel zwischen interaktiver Aufgabe über Jobsteuerung.
-> Starten mehrerer Prozesse, die über Pipes zusammenarbeiten.
-> Ausführen eines Fenstersystems wie des X-Fenstersystems, mit dem mehrere Terminalfenster geöffnet werden können.

2. Um alle diese Prozesse handhaben zu können, muss der Kernel Prozessgruppen bilden, die aus diesen Prozessen bestehen.

3. Um diese Prozessgruppen je nach Benutzer weiter zu verwalten, werden diese Gruppen je nach Benutzer in Sitzungen unterteilt. (Beachten Sie, dass der Benutzer kein Linux-Benutzer ist, sondern Shell oder Terminal für Benutzer. Zwei Terminals auf demselben Computer sind von demselben Linux-Benutzer angemeldet steht hier für 2 verschiedene Benutzer und damit 2 verschiedene Benutzersitzungen. Ein Terminal kann das Terminal nur für eine einzelne Sitzung steuern.
Der Prozess, der die Shell für diesen „Benutzer“ oder diese Sitzung ausführt, wird als Sitzungsleiter bezeichnet.

4. Beachten Sie auch, dass Sie das Terminal schließen, indem Sie die Taste 'x' drücken, um das Terminal nicht zu verlassen. Das Terminal läuft weiter im Hintergrund. Wenn Sie die Sitzung vom Terminal aus beenden möchten, müssen Sie sich von dort abmelden, indem Sie STRG + D drücken oder beenden.

5. Während Sie sich vom Terminal abmelden, sendet der Kernel ein SIGHUP-Signal (ähnlich wie kill -1) an den Prozess, der der Sitzungsleiter ist. Jetzt ist jeder andere Prozess, der im Terminal ausgeführt wird, diesem Sitzungsleiter untergeordnet. Diese untergeordneten Prozesse hatten Prozessgruppen gebildet, die von diesem Sitzungsleiterprozess (übergeordneter Prozess) gesteuert werden.

6. Der Sitzungsleiterprozess sendet SIGHUP an jeden untergeordneten Prozess. Einige Prozesse werden beendet, während andere festlegen können, dass sie nicht beendet werden sollen (die angehalten werden oder im Hintergrund ausgeführt werden). Diejenigen, die sich dafür entscheiden, nicht zu beenden, werden als Session-Overs verwaist und sofort vom Init-Prozess (übergeordnetes Element aller Prozesse in Linux-Computern) übernommen.


Weitere Informationen finden Sie unter Link Das Prozessmodell der Linux-Entwicklung


1

Eine Sitzung ist jede Terminal-Shell, die von den Prozessen eines Benutzers ausgeführt wird. Zum Beispiel laufen gerade 3 Sitzungen. Meine Mate-Desktop-Umgebung und meine beiden Terminalfenster.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.