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