Vous pouvez envoyer une commande de déconnexion via dbus à KDE, qui devrait (si c'est possible) mettre fin à la session.
qdbus org.kde.ksmserver /KSMServer logout 0 0 0
dbus est un système de messagerie qui permet aux applications de communiquer entre elles, et le qdbus
La commande est un utilitaire pour envoyer des messages dbus aux applications.
Les applications s'enregistrent auprès de dbus, et le ksmserver
une partie de KDE est le gestionnaire de session - il s'occupe de qui est connecté.
Nous envoyons donc un message au ksmserver
au /KSMServer
interface et lui disant de se déconnecter. Le message que nous envoyons est exactement le même que celui envoyé à KSM lorsque vous cliquez sur l'icône de déconnexion sur votre bureau.
Les trois zéros sont des paramètres et peuvent modifier le type de déconnexion que nous effectuons :
Premier paramètre :
- 0 =Ne pas attendre la confirmation
- 1 =attendre la confirmation (avec un délai de 30 secondes)
Deuxième paramètre :
- -1 =Demander une action, par défaut à l'arrêt (n'a de sens que lors de l'attente d'une confirmation.)
- 0 =Déconnexion
- 1 =Redémarrer
- 2 =Arrêt
Le troisième paramètre est le paramètre "quand", mais son impact n'est pas clair.
La réponse acceptée est une solution spécifique à KDE5, une approche plus générique serait
loginctl list-sessions
loginctl terminate-session <id>
ou
loginctl terminate-user <username>
Source
Il y a plus de commandes possibles :
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