GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer un bloc d'inhibition Systemd ?

La documentation sur les verrous inhibiteurs de Systemd et aussi man systemd-inhibit vont très loin pour expliquer comment démarrer un processus d'une manière qui bloque quelque chose (par exemple, le handle-lid-switch événement).

Je n'ai pas pu trouver un moyen de me permettre de supprimer un tel "verrou"/"inhiber"/"bloquer".

Question : Existe-t-il un moyen de supprimer le systemd-inhibit verrouiller, par exemple via un dbus message ?

Contexte : pourquoi aurais-je besoin de supprimer un verrou inhibiteur pour **

Mon ordinateur portable a un interrupteur de fermeture du couvercle de l'ordinateur portable, qui systemd-logind surveille et dans le cas où le couvercle est fermé suspend l'ordinateur portable - fonctionnalité "close-lid -> suspend ".

Une fois l'ordinateur portable placé dans sa station d'accueil, pour faire usage d'un écran plus grand, le gsd-power de Gnome est arbitrairement (et erronément et sans aucun paramètre disponible dans Gnome pour le modifier) ​​décide de créer un verrou inhibiteur, empêchant la fonctionnalité "close-lid -> suspend ” pour travailler.

Savoir supprimer un verrou inhibiteur, me permettrait de remédier au paramétrage erroné effectué par le gnome-setting-deamon power gsd-power de Gnome . Le paramètre de Gnome est incorrect, car l'appel manuel suspend systemctl suspend n'a en effet montré aucun problème.

Le verrou inhibiteur que je souhaite supprimer, comme indiqué dans systemd-inhibit --list est-ce :

     Who: alex (UID 1000/alex, PID 4248/gsd-power)
    What: handle-lid-switch
     Why: Multiple displays attached
    Mode: block

Réponse acceptée :

À partir de la documentation du développeur des verrous inhibiteurs :

Inhibit() renvoie une seule valeur, un descripteur de fichier qui encapsule
le verrou. Dès que le descripteur de fichier est fermé (et tous ses
doublons), le verrou est automatiquement relâché. Si le client meurt
alors que le verrou est pris, le noyau ferme automatiquement le descripteur de fichier
afin que le verrou soit automatiquement libéré. Un verrou de retard
pris de cette manière doit être libéré dès que possible à la réception de
PrepareForShutdown(true) (voir ci-dessous), mais bien sûr seulement après
l'exécution des actions que l'application a voulu retarder l'opération
pour en premier lieu.

Vous ne voulez probablement pas tuer gsd-power , vous devrez donc fermer le descripteur de fichier qui encapsule le verrou. Il est très probablement détenu par gsd-power . Forcer un autre processus à fermer l'un de ses descripteurs de fichier n'est pas une chose normale à faire et peut entraîner des effets secondaires dans gsd-power . Mais si vous voulez le faire, lisez cette question dans Stack Overflow.

En relation :Comment fournir un fichier asc garantit-il que je télécharge le code source prévu ?

Au lieu de cela, vous pouvez essayer de supprimer gsd-power l'autorisation d'exécuter l'action DBus org.freedesktop.login1.inhibit-handle-lid-switch . La page de manuel dbus-daemon(1) pourrait être utile.


Linux
  1. Vimrc – Comment bloquer un commentaire ?

  2. Comment désinstaller Sbt ?

  3. Comment supprimer Telegram ?

  4. Comment supprimer une connexion de socket CLOSE_WAIT

  5. Comment supprimer un fichier sans utiliser rm ?

Comment supprimer (supprimer) des liens symboliques sous Linux

Comment supprimer une commande de l'historique sous Linux

Comment supprimer les caractères (^M) d'un fichier sous Linux

Comment supprimer le référentiel distant Git

Comment supprimer les conteneurs Docker

Comment supprimer Swap Space de Centos 7.x ?