GNU/Linux >> Linux Esercitazione >  >> Linux

Come rimuovere un blocco di inibizione del sistema?

La documentazione su Systemd's Inhibitor Locks e anche su man systemd-hibition spiega come avviare un processo in un modo in cui blocca qualcosa (ad es. handle-lid-switch evento).

Non sono riuscito a trovare un modo per consentirmi di rimuovere un tale "blocco"/"inibizione"/"blocco".

Domanda: C'è un modo per rimuovere systemd-inhibit lock, ad esempio tramite un dbus messaggio?

Sfondo: di cosa avrei bisogno per rimuovere un blocco inibitore**

Il mio laptop ha un interruttore di chiusura del coperchio del laptop, che systemd-logind monitor e nel caso in cui il coperchio sia chiuso sospende il laptop – funzionalità “close-lid -> suspend “.

Una volta posizionato il laptop nella sua docking station, per utilizzare uno schermo più grande, il potere gsd di Gnome è arbitrario (e erroneamente e senza alcuna impostazione disponibile in Gnome per modificarlo) decide di creare un blocco inibitore, impedendo la funzionalità “close-lid -> suspend ” al lavoro.

Sapere come rimuovere un blocco inibitore, mi permetterebbe di rimediare all'errata impostazione fatta dallo gnome-setting-deamon power gsd-power di Gnome . L'impostazione di Gnome è errata, perché invocando manualmente suspend systemctl suspend ha mostrato davvero nessun problema.

Il blocco dell'inibitore che vorrei rimuovere, come elencato in systemd-inhibit --list è questo:

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

Risposta accettata:

Dalla documentazione per gli sviluppatori dei blocchi dell'inibitore:

Inhibit() restituisce un singolo valore, un descrittore di file che incapsula
il blocco. Non appena il descrittore di file viene chiuso (e tutti i suoi
duplicati) il blocco viene rilasciato automaticamente. Se il client muore
mentre viene eseguito il blocco, il kernel chiude automaticamente il descrittore del file
in modo che il blocco venga rilasciato automaticamente. Un blocco del ritardo
eseguito in questo modo dovrebbe essere rilasciato il prima possibile alla ricezione di
PrepareForShutdown(true) (vedi sotto), ma ovviamente solo dopo
l'esecuzione delle azioni che l'applicazione voleva ritardare l'operazione
in primo luogo.

Probabilmente non vuoi uccidere gsd-power , quindi dovresti chiudere il descrittore di file che incapsula il blocco. Molto probabilmente è detenuto da gsd-power . Forzare un altro processo a chiudere uno dei suoi descrittori di file non è una cosa normale e potrebbe causare alcuni effetti collaterali all'interno di gsd-power . Ma se vuoi farlo, leggi questa domanda in Stack Overflow.

Correlati:in che modo la fornitura di un file asc garantisce il download del codice sorgente previsto?

Invece, potresti provare a rimuovere gsd-power Il permesso di eseguire l'azione DBus org.freedesktop.login1.inhibit-handle-lid-switch . La pagina man dbus-daemon(1) potrebbe essere utile.


Linux
  1. Vimrc – Come bloccare il commento?

  2. Come disinstallare SBT?

  3. Firefox non risponde a causa del blocco dei file, come rimuoverli?

  4. Come rimuovere i servizi systemd

  5. Java SecureRandom non si blocca? Come?

Come rimuovere (eliminare) i collegamenti simbolici in Linux

Come rimuovere un comando dalla cronologia in Linux

Come rimuovere (^M) caratteri da un file in Linux

Come rimuovere il repository remoto Git

Come rimuovere i contenitori Docker

Come rimuovere Swap Space da Centos 7.x?