GNU/Linux >> Linux Esercitazione >  >> Linux

Come terminare correttamente una sessione di KDE dalla shell senza i privilegi di root

Puoi inviare un comando di logout tramite dbus a KDE, che dovrebbe (se possibile) terminare la sessione.

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

dbus è un sistema di messaggistica che consente alle applicazioni di comunicare tra loro e il qdbus command è un'utilità per l'invio di messaggi dbus alle applicazioni.

Le applicazioni si registrano con dbus e ksmserver parte di KDE è il gestore delle sessioni:si occupa di chi ha effettuato l'accesso.

Quindi stiamo inviando un messaggio a ksmserver al /KSMServer interfaccia e dicendogli di disconnettersi. Il messaggio che stiamo inviando è esattamente lo stesso messaggio che viene inviato a KSM quando fai clic sull'icona di logout sul desktop.

I tre zeri sono parametri e possono alterare il tipo di logout che stiamo facendo:

Primo parametro:

  • 0 =Non attendere la conferma
  • 1 =Attendi conferma (con un timeout di 30 secondi)

Secondo parametro:

  • -1 =Richiedi un'azione, l'impostazione predefinita è l'arresto (ha senso solo in attesa di conferma.)
  • 0 =Esci
  • 1 =Riavvia
  • 2 =Arresto

Il terzo parametro è il parametro "quando", ma non è chiaro quale sia il suo impatto.


La risposta accettata è una soluzione specifica per KDE5, un approccio più generico sarebbe

loginctl list-sessions
loginctl terminate-session <id>

o

loginctl terminate-user <username>

Fonte

Ci sono più comandi possibili:

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. Come eliminare i privilegi di root negli script della shell?

  2. Come eseguire script Python dalla shell

  3. Come verificare se esiste un comando shell da PHP

  4. Creazione di socket raw in Python senza privilegi di root

  5. Come eseguire il comando Vim dalla shell?

Come fornire all'utente i privilegi di root su Kali Linux

Come estendere la partizione radice XFS senza LVM in Linux

Come rimuovere X byte dalla fine di un file di grandi dimensioni senza leggere l'intero file?

Come eseguire un file senza estensione .sh nella shell

Come terminare correttamente una sessione di KDE dalla shell senza i privilegi di root

Cambia lo stato dei led della tastiera, all'interno di una sessione X, senza accesso root