Nach dem Upgrade auf Ubuntu GNOME 15.04 (von 14.10) sind mir meine pm-utils
aufgefallen Haken in /etc/pm/sleep.d
laufen nicht mehr bei Suspend/Resume.
Ich habe ein benutzerdefiniertes Skript, das die Helligkeit vor dem Anhalten speichert und nach dem Fortsetzen wiederherstellt. Wenn ich sudo pm-suspend
manuell ausführe Die Hooks werden ausgeführt, aber wenn ich den Deckel des Laptops schließe (was Ubuntu anhält), werden die Skripte nicht ausgeführt. Übersehe ich etwas?
Das Helligkeitsskript in /etc/pm/sleep.d ist (bearbeitet am 14.04 und 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
Akzeptierte Antwort:
Aktualisieren :Bessere Lösung mit systemd
gefunden ohne externe Skripte. Erstellen und aktivieren Sie den folgenden Dienst:
[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
Ubuntu 16.04-Hinweis :Dem Namen des Zielgerätes für die Hintergrundbeleuchtung sollte „backlight:“ vorangestellt werden (z. B. backlight:acpi_video0
).
Aktivieren durch Ausführen von:systemctl enable suspend-save-backlight.service
(oder wie man es nennt). Beachten Sie, dass acpi_video0 der Name des Symbollinks für die Hintergrundbeleuchtung in /sys/class/backlight
ist die zur Steuerung der Displayhelligkeit verwendet wird, kann auf verschiedenen Systemen variieren.
Das obige verwendet die systemd-backlight
von systemd ausführbar, um die Helligkeit vor dem Suspend bzw. nach dem Resume zu speichern und zu laden (inspiriert von /lib/systemd/system/[email protected]
die die Helligkeit beim Neustart/Booten speichert/lädt).
Alte Lösung (verknüpft ein systemd
service zu meinem pm-utils suspend hook)
Habe das Problem gefunden. Laut diesem ArchWiki-Artikel:
systemd verwendet pm-utils nicht, um die Maschine in den Ruhezustand zu versetzen, wenn systemctl suspend, systemctl hibernate oder systemctl hybrid-sleep verwendet wird; pm-utils-Hooks, einschließlich benutzerdefinierter Hooks, werden nicht ausgeführt. Systemd bietet jedoch zwei ähnliche Mechanismen, um benutzerdefinierte Skripte für diese Ereignisse auszuführen.
Also der richtige Weg, es mit systemd
zu machen (das in 15.04 standardmäßig verwendet wird) besteht darin, die folgenden Dienstdateien zu erstellen, die mein Helligkeitssteuerungsskript in /etc/pm/sleep.d/
ausführen wie folgt:
-
/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
-
/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
Führen Sie dann Folgendes aus, um diese Dienste zu aktivieren:
systemctl enable root-suspend.service
systemctl enable root-resume.service
Weitere Informationen finden Sie im verlinkten Artikel.
Verwandte:In welcher Reihenfolge werden über Pipe geleitete Befehle ausgeführt?