GNU/Linux >> Znalost Linux >  >> Linux

Jaká je definice relace v linuxu?

Session obvykle odkazuje na relace shellu. Shell je to, co vám umožňuje interakci s počítačem. Funguje jako most mezi uživatelem a jádrem. Kdykoli spustíte příkaz, je to shell, který zachytí váš záměr a řekne jádru, aby udělalo jeho věc.

Ve většině verzí Linuxu je výchozí shell bash a nový bash relace bude spuštěna pokaždé, když otevřete nový terminál. Ve výstupu w co jste odeslali, zdá se, že máte svou grafickou přihlašovací relaci (vypadá to, jako byste na stroji šlápli):

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

Několik otevřených emulátorů terminálu:

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

A také se zdá, že jste se přihlásili z negrafického tty:

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

Každá z nich je samostatnou instancí vašeho shellu a každá se počítá jako vlastní relace.


1. I když se uživatel přihlásí do jediného procesu (shell, což je rozhraní příkazového řádku), uživatelé nakonec spustí mnoho procesů jako výsledek akce jako:

-> Spuštění neinteraktivní úlohy na pozadí.
-> Přepínání mezi interaktivními úlohami prostřednictvím řízení úloh.
-> Spuštění více procesů, které spolupracují prostřednictvím potrubí.
-> Spuštění systému oken, jako je systém X oken, který umožňuje otevření více oken terminálu.

2. Aby bylo možné zvládnout všechny tyto procesy, potřebuje jádro vytvořit skupiny procesů složené z těchto procesů.

3. Aby bylo možné tyto skupiny procesů dále spravovat podle uživatele, jsou tyto skupiny rozděleny podle uživatele do relací. (Poznámka zde uživatel není uživatel linuxu, ale shell nebo terminál zastupuje uživatele. Dva terminály na stejném počítači přihlášené stejným uživatelem linuxu zde znamená 2 různé uživatele a tedy 2 různé uživatelské relace. Terminál může ovládat terminál pouze pro jednu relaci).
Proces, který spouští shell pro tohoto „uživatele“ nebo relaci, se nazývá vedoucí relace.

4. Všimněte si také, že uzavření terminálu stisknutím tlačítka „x“ vás neopustí. Tento terminál běží na pozadí. Pokud chcete přerušit relaci z terminálu, musíte se odtud odhlásit stisknutím kláves CTRL+D nebo ukončit.

5. Když se odhlásíte z terminálu, jádro odešle signál SIGHUP (podobný kill -1) procesu, který je vedoucím relace. Nyní je každý další proces, který běží v terminálu, potomkem tohoto vedoucího relace. Tyto podřízené procesy vytvořily skupiny procesů, které jsou řízeny tímto procesem vedoucího relace (nadřazeným procesem).

6. Proces vedoucího relace pošle SIGHUP každému podřízenému procesu, některé procesy se ukončí, zatímco některé se mohou rozhodnout neukončit (ty, které jsou pozastaveny nebo běží na pozadí). Ti, kteří se rozhodnou neukončit, osiří při překročení relací a okamžitě je adoptuje proces init (rodič všech procesů v linuxovém počítači).


Další informace naleznete v odkazu Procesní model vývoje Linuxu


Myslím, že každá terminálová relace je uživatelská relace. Můžete mít více než jeden terminál pod X a to jsou virtuální terminály, nebo můžete mít skutečný terminál pod konzolou. To jsou všechny relace. Toto je moje 'w'

$ w
 15:14:13 up 9 days,  6:02,  8 users,  load average: 1,03, 1,19, 1,31
USER     TTY        [email protected]   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

Druhý sloupec zobrazuje tty, jak můžete vidět, že body jsou xterm (virtuální terminál), druhý (tty2) je přihlášení do konzole.


Linux
  1. Co dělá Linux udržitelným OS

  2. Linux vs. Unix:Jaký je rozdíl?

  3. Jaká je aktuální úroveň běhu systému Linux?

  1. Linux – je to proces, který má řídicí terminál, nebo je to relace, která má řídicí terminál?

  2. Jak zastavit proces obrazovky v linuxu?

  3. Jaký je aktuální zdrojový kód jádra Linuxu?

  1. Co je to příkaz k nalezení priority procesu v Linuxu?

  2. Jaké je výchozí pořadí řazení Linuxu?

  3. Jaký je význam curl -k -i -X ​​v Linuxu?