GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Ubuntu 15.04 Suspend n'exécute pas `pm-suspend`?

Après la mise à niveau vers Ubuntu GNOME 15.04 (à partir de 14.10), j'ai remarqué mon pm-utils crochets dans /etc/pm/sleep.d ne s'exécutent plus lors de la suspension/reprise.

J'ai un script personnalisé qui enregistre la luminosité avant la suspension et la restaure après la reprise. Si j'exécute manuellement sudo pm-suspend les crochets s'exécutent mais si je ferme le couvercle de l'ordinateur portable (qui suspend Ubuntu), les scripts ne sont pas exécutés. Ai-je raté quelque chose ?

Le script de luminosité dans /etc/pm/sleep.d est (travaillé sur 14.04 et 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

Réponse acceptée :

Mettre à jour :Trouvé une solution plus agréable en utilisant systemd sans scripts externes. Créez et activez le service suivant :

[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

Remarque Ubuntu 16.04  :Le nom du périphérique de rétroéclairage cible doit être précédé de "rétroéclairage :" (par exemple, backlight:acpi_video0 ).

Activez en exécutant :systemctl enable suspend-save-backlight.service (ou peu importe comment vous l'appelez). Notez que acpi_video0 est le nom du lien symbolique de rétroéclairage dans /sys/class/backlight qui est utilisé pour contrôler la luminosité de l'écran, peut varier sur différents systèmes.

Ce qui précède utilise le systemd-backlight de systemd exécutable pour enregistrer et charger la luminosité avant la suspension et après la reprise respectivement (inspiré de /lib/systemd/system/[email protected] qui enregistre/charge la luminosité au redémarrage/démarrage).

Ancienne solution (relie un systemd service à mon hook de suspension pm-utils)

Trouvé le problème. D'après cet article d'ArchWiki :

systemd n'utilise pas pm-utils pour mettre la machine en veille lors de l'utilisation de systemctl suspend, systemctl hibernate ou systemctl hybrid-sleep ; Les crochets pm-utils, y compris les crochets personnalisés, ne seront pas exécutés. Cependant, systemd fournit deux mécanismes similaires pour exécuter des scripts personnalisés sur ces événements.

Donc, la bonne façon de le faire avec systemd (qui est utilisé par défaut dans 15.04) consiste à créer les fichiers de service suivants qui exécutent mon script de contrôle de la luminosité dans /etc/pm/sleep.d/ comme suit :

  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
    

Exécutez ensuite la commande suivante pour activer ces services :

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

Reportez-vous à l'article lié pour plus de détails.

En relation :Dans quel ordre les commandes canalisées s'exécutent-elles ?
Ubuntu
  1. Ubuntu - Désinstallation du fichier *.run ?

  2. Comment exécuter Wireshark sur Ubuntu 17.10 ?

  3. Comment configurer un service ?

  4. Ubuntu 16.04 Pas de Wifi après suspension ?

  5. Est-il possible d'exécuter Ubuntu sur un Nexus 7 ?

Comment redémarrer le réseau dans Ubuntu

Comment redémarrer Bluetooth dans Ubuntu 20.04

Fix Laptop ne s'interrompt pas après la fermeture du couvercle sur Ubuntu Linux

Activer ou créer un service dans Ubuntu 20.04 LTS

L'ordinateur portable Ubuntu 17.10 ne se suspend pas à la fermeture du couvercle?

Comment exécuter Memtest dans Ubuntu 22.04