GNU/Linux >> Znalost Linux >  >> Ubuntu

Ubuntu 15.04 Suspend se nespustí `pm-suspend`?

Po upgradu na Ubuntu GNOME 15.04 (z 14.10) jsem si všiml svého pm-utils háčky v /etc/pm/sleep.d již neběží při pozastavení/obnovení.

Mám vlastní skript, který ukládá jas před pozastavením a obnovuje jej po obnovení. Pokud ručně spustím sudo pm-suspend háčky se provedou, ale pokud zavřu víko notebooku (což pozastaví Ubuntu), skripty se nespustí. Uniká mi něco?

Skript jasu v /etc/pm/sleep.d je (fungoval 14.04 a 14.10):

#!/bin/bash

case "$1" in
    suspend|suspend_hybrid|hibernate)
        cat /sys/class/backlight/acpi_video0/brightness > /tmp/.brightness_level
        # modprobe -r nvidiabl
        ;;
    resume|thaw)
        # modprobe nvidiabl
        cat /tmp/.brightness_level > /sys/class/backlight/acpi_video0/brightness
        rm /tmp/.brightness_level
        ;;
esac

Přijatá odpověď:

Aktualizovat :Našel jsem hezčí řešení pomocí systemd bez externích skriptů. Vytvořte a povolte následující službu:

[Unit]
Description=Save brightness on suspend
DefaultDependencies=no
RequiresMountsFor=/var/lib/systemd/backlight
Before=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lib/systemd/systemd-backlight save acpi_video0
ExecStop=/lib/systemd/systemd-backlight load acpi_video0
TimeoutSec=90s

[Install]
WantedBy=sleep.target

Poznámka k Ubuntu 16.04 :Název cílového zařízení s podsvícením by měl mít předponu „podsvícení:“ (např. backlight:acpi_video0 ).

Aktivujte provedením:systemctl enable suspend-save-backlight.service (nebo jak to nazvat). Všimněte si, že acpi_video0 je název symbolického odkazu podsvícení v /sys/class/backlight který se používá k ovládání jasu displeje, se může v různých systémech lišit.

Výše uvedené používá systemd-backlight systemd spustitelný pro uložení a načtení jasu před pozastavením a po obnovení (inspirováno z /lib/systemd/system/[email protected] který ukládá/načítá jas při restartu/bootu).

Staré řešení (odkazuje na systemd služba mému pm-utils suspend hook)

Nalezen problém. Podle tohoto článku ArchWiki:

systemd nepoužívá pm-utils k uspání počítače při použití uspání systemctl, hibernace systemctl nebo hybridního spánku systemctl; Háky pm-utils, včetně jakýchkoli vlastních háčků, nebudou spuštěny. Systemd však poskytuje dva podobné mechanismy pro spouštění vlastních skriptů na tyto události.

Takže správný způsob, jak to udělat s systemd (který se ve výchozím nastavení používá v 15.04) je vytvořit následující soubory služeb, které spouštějí můj skript ovládání jasu v /etc/pm/sleep.d/ takto:

  1. /etc/systemd/system/root-suspend.service :

    [Unit]
    Description=Local system suspend actions
    Before=sleep.target
    
    [Service]
    Type=simple
    ExecStart=-/etc/pm/sleep.d/nvidiabl_brightness suspend
    
    [Install]
    WantedBy=sleep.target
    
  2. /etc/systemd/system/root-resume.service :

    [Unit]
    Description=Local system resume actions
    After=suspend.target
    
    [Service]
    Type=simple
    ExecStart=-/etc/pm/sleep.d/nvidiabl_brightness resume
    
    [Install]
    WantedBy=suspend.target
    

Poté spusťte následující a povolte tyto služby:

systemctl enable root-suspend.service
systemctl enable root-resume.service

Další podrobnosti naleznete v odkazovaném článku.

Související:V jakém pořadí se spouštějí pipetované příkazy?
Ubuntu
  1. Jak nastavit službu?

  2. Spustit SQL Server na Ubuntu?

  3. Ubuntu 16.04 Žádná Wifi po pozastavení?

  1. Nainstalujte a spusťte Vagrant na Ubuntu 20.04

  2. Ubuntu – Odinstalování souboru *.run?

  3. Catalyst 15.7:Mohl by běžet na Ubuntu 15.04?

  1. Jak spustit Wireshark na Ubuntu 17.10?

  2. Jak spustit soubory .exe v Ubuntu?

  3. Je možné spustit Ubuntu na Nexus 7?