Recursos para la comunidad

loginctl list-sessions
Este comando nos dá un listado de las sesiones abiertas tanto de usuarios humanos como sesiones abiertas por procesos del sistema tales como los display managers
para ver detalles de una sesión en particular se puede utilizar el comando:
loginctl session-status [id de la sesión]
con esto podemos conocer los procesos asociados a dicha sesión incluyendo los PID de los procesos asociados.
Para terminar una sesión de otro usuario se requiere ser root o usar sudo
loginctl kill-session [id de la sesión]
Se pueden listar los usuarios con sesiones abiertas con
loginctl list-users
esto nos dará una lista de los usuarios con una o mas sesiones, incluso si estos no aparecen usando el comando w ó who además de sus UID
podremos ver distintos tipos de información relacionada a un usuario en específico si utilizamos:
loginctl show-user [nombre de usuario]
o bien:
loginctl user-status [nombre de usuario]
para terminar las sesiones y procesos asociados a un usuario en particular podremos utilizar
loginctl kill-user [nombre de usuario]
cabe mencionar que esto no mata físicamente al usuario de manera que si este muere después de ejecutar este comando; se tratará de una mera coincidencia y el administrador no podrá ser imputable por homicidio
Estos argumentos funcionan en general para toda la suite de loginctl y facilitan el parseo de la salida
| Argumento | Efecto |
|---|---|
| –no-legend | no muestra los encabezados de los resultados |
| -a , –all | muestra todos los campos, incluso los vacíos |
| -o json | muestra la salida en formato JSON |
Adicionalmente si no se utiliza el formato JSON, puede ser util hacer pipe a sed para eliminar los espacios al inicio del texto de salida y para homogeneizar la salida en columnas podemos colapsar todos los caracteres en blanco en uno solo:
loginctl list-sessions --no-legend | sed 's/^\W*//' | sed 's/\W\W*/:/g'
esto permite que el output sea facilmente manejable con cut
loginctl --help en systemd versión 245.4-4ubuntu3.19
