После обновления до Ubuntu GNOME 15.04 (от 14,10), я заметил мой pm-utils
рычаги в /etc/pm/sleep.d
не работают больше на, приостанавливают/возобновляют.
У меня есть пользовательский сценарий, который сохраняет яркость, прежде чем приостановят, и восстанавливает его после резюме. Если я вручную работаю sudo pm-suspend
рычаги выполняются, но если я закрываю крышку ноутбука (который приостанавливает Ubuntu), сценарии не выполняются. Я пропускаю что-то?
Сценарий яркости в/etc/pm/sleep.d (работал над 14,04 и 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
Обновление: Найденный более хорошим использованием решения systemd
без внешних сценариев. Создайте и включите следующий сервис:
[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: целевое имя устройства подсветки должно быть снабжено префиксом "подсветку": (например. backlight:acpi_video0
).
Включите путем выполнения: systemctl enable suspend-save-backlight.service
(или независимо от того, что Вы называете его). Обратите внимание, что acpi_video0 является названием символьной ссылки подсветки в /sys/class/backlight
то, которое используется для управления яркостью дисплея, могло бы варьироваться в различных системах.
Вышеупомянутый systemd's использования systemd-backlight
исполняемый файл, чтобы сохранить и загрузить яркость прежде приостанавливает и после резюме соответственно (вдохновленный /lib/systemd/system/systemd-backlight@.service
который сохраняет/загружает яркость на перезапуске/начальной загрузке).
Старое решение (связывает a systemd
сервис к моему пополудни-utils приостанавливает рычаг),
Найденный проблемой. В соответствии с этой статьей ArchWiki:
systemd не использует пополудни-utils для помещения машины для сна, когда использование systemctl приостанавливает, systemctl в спящем режиме или systemctl гибридный сон; пополудни-utils рычаги, включая любые пользовательские рычаги, не будут выполнены. Однако systemd обеспечивает два подобных механизма для запущения пользовательских скриптов на этих событиях.
Так правильный способ сделать это с systemd
(который используется по умолчанию в 15,04), должен создать следующие сервисные файлы, которые выполняют мой сценарий регулировки яркости в /etc/pm/sleep.d/
следующим образом:
/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
Затем выполните следующее для включения этих сервисов:
systemctl enable root-suspend.service
systemctl enable root-resume.service
Обратитесь к связанной статье для получения дополнительной информации.