¿Cuál es la definición de una "sesión" en Linux?


Respuestas:


9

Sessiongeneralmente se refiere a sesiones de shell. Un shell es lo que le permite interactuar con la computadora. Actúa como un puente entre el usuario y el núcleo . Cada vez que ejecuta un comando, es el shell el que captura su intención y le dice al núcleo que haga lo suyo.

En la mayoría de los sabores de Linux, el shell predeterminado es bashy se bashiniciará una nueva sesión cada vez que abra un nuevo terminal. En el resultado de wsu publicación, parece que tiene su sesión de inicio de sesión gráfica (parece que está haciendo un error en la máquina):

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

Algunos emuladores de terminal abiertos:

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

Y también parece haber iniciado sesión desde un tty no gráfico:

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

Cada uno de estos es una instancia separada de su shell y cada uno cuenta como su propia sesión.


2

Creo que cada sesión de terminal es una sesión de usuario. Puede tener más de un terminal debajo de X y esos son terminales virtuales, o puede tener un terminal real debajo de la consola. Esas son todas las sesiones. Esta es mi '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

La segunda columna muestra el tty, ya que puede ver que los pts son xterm (terminal virtual) y el otro (tty2) es un inicio de sesión de consola.


2

1. Aunque el usuario inicia sesión en un proceso único (shell, que es su interfaz de línea de comando), los usuarios terminan ejecutando muchos procesos como resultado de acciones como:

-> Ejecución de tareas no interactivas en segundo plano.
-> Cambio entre tareas interactivas a través del control de trabajo.
-> Inicio de múltiples procesos que trabajan juntos a través de tuberías.
-> Ejecutar un sistema de ventanas como el sistema de ventanas X que permite abrir múltiples ventanas de terminal

2. Para manejar todos estos procesos, el núcleo debe formar grupos de procesos que comprendan estos procesos.

3. Para administrar estos grupos de procesos según el usuario, estos grupos se dividen según el usuario en sesiones. significa 2 usuarios diferentes y, por lo tanto, 2 sesiones de usuario diferentes aquí. Un terminal puede controlar el terminal para una sola sesión).
El proceso que ejecuta el shell para ese "usuario" o sesión se conoce como líder de sesión.

4. Observe también el cierre del terminal presionando el botón 'x' para no salir de ese terminal. Esa terminal sigue funcionando en segundo plano. Si desea finalizar la sesión desde la terminal, debe cerrar sesión desde allí presionando CTRL + D o salir.

5. Al cerrar sesión desde la terminal, el núcleo envía la señal SIGHUP (similar a kill -1) para procesar el líder de la sesión. Ahora, cualquier otro proceso que se ejecute en la terminal es hijo de este líder de sesión. Estos procesos secundarios habían formado grupos de procesos controlados por este proceso de líder de sesión (proceso principal).

6. El proceso de líder de sesión envía SIGHUP a cada proceso secundario, algunos procesos finalizan, mientras que algunos pueden elegir no finalizar (aquellos suspendidos o que se ejecutan en segundo plano). Aquellos que eligen no terminar quedan huérfanos como sesiones adicionales e inmediatamente adoptados por el proceso init (padre de todo el proceso en la máquina Linux).


Para más información, consulte el enlace El modelo de proceso de desarrollo de Linux


1

Una sesión es cada shell de terminal ejecutada por los procesos de un usuario. Por ejemplo, tengo 3 sesiones ejecutándose en este momento. Mi entorno de escritorio Mate y mis dos ventanas de terminal.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.