GNU/Linux >> Tutoriels Linux >  >> Linux

Comment terminer correctement une session KDE à partir du shell sans privilèges root

Vous pouvez envoyer une commande de déconnexion via dbus à KDE, qui devrait (si c'est possible) mettre fin à la session.

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

dbus est un système de messagerie qui permet aux applications de communiquer entre elles, et le qdbus La commande est un utilitaire pour envoyer des messages dbus aux applications.

Les applications s'enregistrent auprès de dbus, et le ksmserver une partie de KDE est le gestionnaire de session - il s'occupe de qui est connecté.

Nous envoyons donc un message au ksmserver au /KSMServer interface et lui disant de se déconnecter. Le message que nous envoyons est exactement le même que celui envoyé à KSM lorsque vous cliquez sur l'icône de déconnexion sur votre bureau.

Les trois zéros sont des paramètres et peuvent modifier le type de déconnexion que nous effectuons :

Premier paramètre :

  • 0 =Ne pas attendre la confirmation
  • 1 =attendre la confirmation (avec un délai de 30 secondes)

Deuxième paramètre :

  • -1 =Demander une action, par défaut à l'arrêt (n'a de sens que lors de l'attente d'une confirmation.)
  • 0 =Déconnexion
  • 1 =Redémarrer
  • 2 =Arrêt

Le troisième paramètre est le paramètre "quand", mais son impact n'est pas clair.


La réponse acceptée est une solution spécifique à KDE5, une approche plus générique serait

loginctl list-sessions
loginctl terminate-session <id>

ou

loginctl terminate-user <username>

Source

Il y a plus de commandes possibles :

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. Comment supprimer les privilèges root dans les scripts Shell ?

  2. Comment exécuter une commande sans propriétés racine ?

  3. Comment exécuter des scripts Python à partir du shell

  4. Comment copier du texte depuis mon xterm sans souris ?

  5. Comment gérer plus de 10 paramètres dans le shell

Comment fournir à l'utilisateur des privilèges root sur Kali Linux

Comment étendre la partition racine XFS sans LVM sous Linux

Comment détecter si le shell est contrôlé depuis Ssh ?

Comment passer d'un utilisateur root à un autre utilisateur disposant d'un shell Nologin ?

Comment exécuter un fichier sans extension .sh dans le shell

Comment exécuter la commande Vim depuis le shell ?