GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo finalizar correctamente una sesión de KDE desde el shell sin privilegios de root

Puede enviar un comando de cierre de sesión a través de dbus a KDE, que debería (si puede) terminar la sesión.

qdbus org.kde.ksmserver /KSMServer logout 0 0 0

dbus es un sistema de mensajería que permite que las aplicaciones se comuniquen entre sí y el qdbus El comando es una utilidad para enviar mensajes dbus a aplicaciones.

Las aplicaciones se registran con dbus y el ksmserver parte de KDE es el administrador de sesión:se ocupa de quién está conectado.

Entonces estamos enviando un mensaje a ksmserver al /KSMServer interfaz y decirle que cierre la sesión. El mensaje que enviamos es exactamente el mismo mensaje que se envía a KSM cuando hace clic en el icono de cierre de sesión en su escritorio.

Los tres ceros son parámetros y pueden alterar el tipo de cierre de sesión que estamos haciendo:

Primer parámetro:

  • 0 =No esperar confirmación
  • 1 =Esperar confirmación (con un tiempo de espera de 30 segundos)

Segundo parámetro:

  • -1 =Solicitud de acción, predeterminado para apagar (solo tiene sentido cuando se espera la confirmación).
  • 0 =Cerrar sesión
  • 1 =Reiniciar
  • 2 =Apagar

El tercer parámetro es el parámetro "cuándo", pero no está claro cuál es su impacto.


La respuesta aceptada es una solución específica para KDE5, un enfoque más genérico sería

loginctl list-sessions
loginctl terminate-session <id>

o

loginctl terminate-user <username>

Fuente

Hay más comandos posibles:

Session Commands:
  list-sessions            List sessions
  session-status [ID...]   Show session status
  show-session [ID...]     Show properties of sessions or the manager
  activate [ID]            Activate a session
  lock-session [ID...]     Screen lock one or more sessions
  unlock-session [ID...]   Screen unlock one or more sessions
  lock-sessions            Screen lock all current sessions
  unlock-sessions          Screen unlock all current sessions
  terminate-session ID...  Terminate one or more sessions
  kill-session ID...       Send signal to processes of a session

User Commands:
  list-users               List users
  user-status [USER...]    Show user status
  show-user [USER...]      Show properties of users or the manager
  enable-linger [USER...]  Enable linger state of one or more users
  disable-linger [USER...] Disable linger state of one or more users
  terminate-user USER...   Terminate all sessions of one or more users
  kill-user USER...        Send signal to processes of a user

Seat Commands:
  list-seats               List seats
  seat-status [NAME...]    Show seat status
  show-seat [NAME...]      Show properties of seats or the manager
  attach NAME DEVICE...    Attach one or more devices to a seat
  flush-devices            Flush all device associations
  terminate-seat NAME...   Terminate all sessions on one or more seats

Linux
  1. Cómo configurar los privilegios de Sudo para el usuario en Linux

  2. ¿Cómo instalar el programa localmente sin privilegios de Sudo?

  3. Linux:¿cómo se reinicia Gnome sin privilegios de raíz?

  4. ¿Cómo detectar si el Shell está controlado desde Ssh?

  5. ¿Cómo cambiar de usuario raíz a otro usuario que tenga un shell de Nologin?

Cómo proporcionar al usuario privilegios de root en Kali Linux

Cómo extender la partición raíz XFS sin LVM en Linux

Cómo manejar más de 10 parámetros en shell

¿Cómo eliminar X bytes del final de un archivo grande sin leer todo el archivo?

¿Cómo ejecutar el comando Vim desde el shell?

Cambia el estado de los leds del teclado, desde dentro de una sesión X, sin acceso root