Můžete poslat příkaz k odhlášení přes dbus do KDE, což by mělo (pokud může) ukončit relaci.
qdbus org.kde.ksmserver /KSMServer logout 0 0 0
dbus je systém zasílání zpráv, který umožňuje aplikacím komunikovat mezi sebou a qdbus
command je nástroj pro odesílání zpráv dbus aplikacím.
Aplikace se registrují pomocí dbus a ksmserver
součástí KDE je správce relací - stará se o to, kdo je přihlášen.
Takže posíláme zprávu na ksmserver
na /KSMServer
rozhraní a pokyn k odhlášení. Zpráva, kterou posíláme, je přesně ta samá zpráva, která se odešle do KSM, když kliknete na ikonu odhlášení na ploše.
Tři nuly jsou parametry a mohou změnit typ odhlášení, které provádíme:
První parametr:
- 0 =Nečekejte na potvrzení
- 1 =Počkejte na potvrzení (s časovým limitem 30 sekund)
Druhý parametr:
- -1 =Výzva k akci, výchozí nastavení je vypnutí (má smysl pouze při čekání na potvrzení.)
- 0 =Odhlášení
- 1 =Restartovat
- 2 =Vypnutí
Třetím parametrem je parametr „when“, ale není jasné, jaký je jeho dopad.
Přijatá odpověď je řešení specifické pro KDE5, obecnější přístup by byl
loginctl list-sessions
loginctl terminate-session <id>
nebo
loginctl terminate-user <username>
Zdroj
Existuje více možných příkazů:
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