GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit blok blokující Systemd?

Dokumentace k blokovacím zámkům Systemd a také man systemd-inhibit je velmi obsáhlá, aby vysvětlila, jak spustit proces způsobem, který něco blokuje (např. handle-lid-switch událost).

Nebyl jsem schopen najít způsob, jak mi umožnit odstranit takový „zámek“/“blokovat“/“blok“.

Otázka: Existuje způsob, jak odstranit systemd-inhibit zámek, například prostřednictvím dbus zprávu?

Pozadí: k čemu bych potřeboval odstranit blokovací zámek**

Můj notebook má vypínač na víku notebooku, který systemd-logind monitory a v případě zavření víka zavěsí notebook – funkce „close-lid -> suspend “.

Jakmile je notebook umístěn ve své dokovací stanici, aby uživatel s větší obrazovkou, libovolně (a chybně) Gnome gsd-power a bez jakéhokoli dostupného nastavení v Gnome pro jeho změnu ) se rozhodne vytvořit blokovací zámek, který zabrání funkci „close-lid -> suspend ” do práce.

Vědět, jak odstranit blokovací zámek, by mi umožnilo napravit chybné nastavení způsobené gnome-setting-deamon power gsd-power . Nastavení Gnome je špatné, protože ruční vyvolání pozastavení systemctl suspend skutečně neukázal žádný problém.

Zámek inhibitoru, který bych chtěl odstranit, jak je uveden v systemd-inhibit --list je toto:

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

Přijatá odpověď:

Z dokumentace pro vývojáře blokovacích zámků:

Inhibit() vrací jedinou hodnotu, deskriptor souboru, který zapouzdřuje
zámek. Jakmile je deskriptor souboru uzavřen (a všechny jeho
duplikáty), zámek se automaticky uvolní. Pokud klient zemře
během zamčení, jádro automaticky zavře deskriptor souboru
, takže zámek se automaticky uvolní. Zámek zpoždění
přijatý tímto způsobem by měl být uvolněn co nejdříve po přijetí
PrepareForShutdown(true) (viz níže), ale samozřejmě až po
provedení akcí, kterými aplikace chtěla operaci zpozdit
na prvním místě.

Pravděpodobně nebudete chtít zabít gsd-power , takže byste museli zavřít deskriptor souboru, který zapouzdřuje zámek. S největší pravděpodobností jej drží gsd-power . Přinutit jiný proces k uzavření jednoho ze svých deskriptorů souborů není normální věc a může způsobit některé vedlejší účinky v rámci gsd-power . Ale pokud to chcete udělat, přečtěte si tuto otázku v Stack Overflow.

Související:Jak poskytnutí souboru asc zajistí, že stahuji zamýšlený zdrojový kód?

Místo toho můžete zkusit odstranit gsd-power oprávnění ke spuštění akce DBus org.freedesktop.login1.inhibit-handle-lid-switch . Manuálová stránka dbus-daemon(1) může být užitečné.


Linux
  1. Vimrc – Jak zablokovat komentář?

  2. Jak odinstalovat Sbt?

  3. Jak odstranit telegram?

  1. Jak odeberu připojení soketu CLOSE_WAIT

  2. Java SecureRandom neblokuje? Jak?

  3. Jak odstranit soubor bez použití rm?

  1. Jak odstranit všechny kontejnery Docker

  2. Jak odstranit systémové služby

  3. Jak vrátit zpět odstranění apt-get?