Anda dapat mengirimkan perintah logout melalui dbus ke KDE, yang seharusnya (jika dapat) menghentikan sesi.
qdbus org.kde.ksmserver /KSMServer logout 0 0 0
dbus adalah sistem perpesanan yang memungkinkan aplikasi berkomunikasi satu sama lain, dan qdbus
perintah adalah utilitas untuk mengirimkan pesan dbus ke aplikasi.
Aplikasi mendaftar dengan dbus, dan ksmserver
bagian dari KDE adalah manajer sesi - ini menjaga siapa yang masuk.
Jadi kami mengirim pesan ke ksmserver
ke /KSMServer
antarmuka dan menyuruhnya keluar. Pesan yang kami kirim sama persis dengan pesan yang dikirim ke KSM saat Anda mengeklik ikon logout di desktop.
Tiga angka nol adalah parameter dan dapat mengubah jenis logout yang kita lakukan:
Parameter pertama:
- 0 =Jangan menunggu konfirmasi
- 1 =Tunggu konfirmasi (dengan batas waktu 30 detik)
Parameter kedua:
- -1 =Prompt untuk tindakan, default ke shutdown (Hanya masuk akal saat menunggu konfirmasi.)
- 0 =Keluar
- 1 =Mulai ulang
- 2 =Matikan
Parameter ketiga adalah parameter "kapan", tetapi tidak jelas apa dampaknya.
Jawaban yang diterima adalah solusi khusus untuk KDE5, pendekatan yang lebih umum adalah
loginctl list-sessions
loginctl terminate-session <id>
atau
loginctl terminate-user <username>
Sumber
Ada lebih banyak kemungkinan perintah:
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