GNU/Linux >> Belajar Linux >  >> Linux

Cara mengakhiri sesi KDE dengan benar dari shell tanpa hak akses root

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

Linux
  1. Cara Mengatur Hak Istimewa Sudo untuk Pengguna di Linux

  2. Bagaimana Cara Menjatuhkan Hak Istimewa Root Dalam Skrip Shell?

  3. Bagaimana Cara Beralih Dari Pengguna Root Ke Pengguna Lain Yang Memiliki Shell Nologin?

  1. Cara menjalankan skrip Python dari shell

  2. Bagaimana cara menyalin teks dari xterm saya tanpa mouse?

  3. Bagaimana menangani lebih dari 10 parameter di shell

  1. Bagaimana cara menghapus X byte dari akhir file besar tanpa membaca seluruh file?

  2. Cara memeriksa apakah ada perintah shell dari PHP

  3. Membuat soket mentah dengan Python tanpa hak akses root