GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So beenden Sie eine KDE-Sitzung ordnungsgemäß von der Shell ohne Root-Rechte

Sie können einen Logout-Befehl über dbus an KDE senden, das (wenn es kann) die Sitzung beenden sollte.

qdbus org.kde.ksmserver /KSMServer logout 0 0 0

dbus ist ein Nachrichtensystem, mit dem Anwendungen miteinander kommunizieren können, und der qdbus Befehl ist ein Dienstprogramm zum Senden von DBus-Nachrichten an Anwendungen.

Anwendungen registrieren sich bei dbus und ksmserver Teil von KDE ist der Sitzungsmanager - er kümmert sich darum, wer angemeldet ist.

Wir senden also eine Nachricht an ksmserver bis /KSMServer Schnittstelle und sagt ihr, dass sie sich abmelden soll. Die Nachricht, die wir senden, ist genau dieselbe Nachricht, die an KSM gesendet wird, wenn Sie auf Ihrem Desktop auf das Abmeldesymbol klicken.

Die drei Nullen sind Parameter und können die Art der Abmeldung ändern, die wir durchführen:

Erster Parameter:

  • 0 =Nicht auf Bestätigung warten
  • 1 =Auf Bestätigung warten (mit einem Timeout von 30 Sekunden)

Zweiter Parameter:

  • -1 =Aufforderung zum Handeln, standardmäßig Herunterfahren (Nur sinnvoll, wenn auf Bestätigung gewartet wird.)
  • 0 =Abmelden
  • 1 =Neustart
  • 2 =Herunterfahren

Der dritte Parameter ist der „wann“-Parameter, aber es ist nicht klar, was seine Auswirkung ist.


Die akzeptierte Antwort ist eine für KDE5 spezifische Lösung, ein allgemeinerer Ansatz wäre

loginctl list-sessions
loginctl terminate-session <id>

oder

loginctl terminate-user <username>

Quelle

Es gibt noch mehr mögliche Befehle:

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. So richten Sie Sudo-Berechtigungen für Benutzer in Linux ein

  2. Wie installiere ich das Programm lokal ohne Sudo-Berechtigungen?

  3. Linux – Wie startet Gnome ohne Root-Rechte neu?

  4. Wie erkennt man, ob die Shell von ssh aus gesteuert wird?

  5. Wie führe ich einen Befehl ohne Root-Eigenschaften aus?

So erteilen Sie Benutzern Root-Rechte unter Kali Linux

So erweitern Sie die XFS-Root-Partition ohne LVM in Linux

Wie wechselt man vom Root-Benutzer zu einem anderen Benutzer, der eine Nologin-Shell hat?

Umgang mit mehr als 10 Parametern in der Shell

So überprüfen Sie, ob ein Shell-Befehl von PHP existiert

So beenden Sie eine KDE-Sitzung ordnungsgemäß von der Shell ohne Root-Rechte