GNU/Linux >> Znalost Linux >  >> Linux

Jak správně ukončit relaci KDE ze shellu bez oprávnění root

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

Linux
  1. Jak zrušit kořenová oprávnění ve skriptech Shell?

  2. Jak přepnout z uživatele root na jiného uživatele, který má prostředí Nologin?

  3. Jak spustit příkaz bez vlastností root?

  1. Jak spouštět skripty Pythonu ze shellu

  2. Jak zkopíruji text ze svého xtermu bez myši?

  3. Jak odstranit X bajtů z konce velkého souboru bez přečtení celého souboru?

  1. Jak zkontrolovat, zda existuje příkaz shellu z PHP

  2. Vytváření raw socketu v Pythonu bez práv roota

  3. Jak správně ukončit relaci KDE ze shellu bez oprávnění root