Puoi inviare un comando di logout tramite dbus a KDE, che dovrebbe (se possibile) terminare la sessione.
qdbus org.kde.ksmserver /KSMServer logout 0 0 0
dbus è un sistema di messaggistica che consente alle applicazioni di comunicare tra loro e il qdbus
command è un'utilità per l'invio di messaggi dbus alle applicazioni.
Le applicazioni si registrano con dbus e ksmserver
parte di KDE è il gestore delle sessioni:si occupa di chi ha effettuato l'accesso.
Quindi stiamo inviando un messaggio a ksmserver
al /KSMServer
interfaccia e dicendogli di disconnettersi. Il messaggio che stiamo inviando è esattamente lo stesso messaggio che viene inviato a KSM quando fai clic sull'icona di logout sul desktop.
I tre zeri sono parametri e possono alterare il tipo di logout che stiamo facendo:
Primo parametro:
- 0 =Non attendere la conferma
- 1 =Attendi conferma (con un timeout di 30 secondi)
Secondo parametro:
- -1 =Richiedi un'azione, l'impostazione predefinita è l'arresto (ha senso solo in attesa di conferma.)
- 0 =Esci
- 1 =Riavvia
- 2 =Arresto
Il terzo parametro è il parametro "quando", ma non è chiaro quale sia il suo impatto.
La risposta accettata è una soluzione specifica per KDE5, un approccio più generico sarebbe
loginctl list-sessions
loginctl terminate-session <id>
o
loginctl terminate-user <username>
Fonte
Ci sono più comandi possibili:
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