Setelah memutakhirkan ke Ubuntu GNOME 15.04 (dari 14.10), saya perhatikan pm-utils
saya kait di /etc/pm/sleep.d
tidak berjalan lagi saat ditangguhkan/dilanjutkan.
Saya memiliki skrip khusus yang menyimpan kecerahan sebelum ditangguhkan dan mengembalikannya setelah melanjutkan. Jika saya secara manual menjalankan sudo pm-suspend
kait dijalankan tetapi jika saya menutup penutup laptop (yang menangguhkan Ubuntu) skrip tidak dieksekusi. Apakah saya melewatkan sesuatu?
Skrip kecerahan di /etc/pm/sleep.d adalah (berfungsi pada 14.04 dan 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
Jawaban yang Diterima:
Perbarui :Menemukan solusi yang lebih baik menggunakan systemd
tanpa skrip eksternal. Buat dan aktifkan layanan berikut:
[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 Catatan :Nama perangkat lampu latar target harus diawali dengan “lampu latar:” (mis. backlight:acpi_video0
).
Aktifkan dengan menjalankan:systemctl enable suspend-save-backlight.service
(atau apapun sebutannya). Perhatikan bahwa acpi_video0 adalah nama symlink lampu latar di /sys/class/backlight
yang digunakan untuk mengontrol kecerahan tampilan, mungkin berbeda pada sistem yang berbeda.
Di atas menggunakan systemd-backlight
systemd dapat dieksekusi untuk menyimpan dan memuat kecerahan masing-masing sebelum ditangguhkan dan setelah dilanjutkan (terinspirasi dari /lib/systemd/system/[email protected]
yang menyimpan/memuat kecerahan saat restart/boot).
Solusi Lama (menautkan systemd
layanan ke kait penangguhan pm-utils saya)
Menemukan masalahnya. Menurut artikel ArchWiki ini:
systemd tidak menggunakan pm-utils untuk mematikan mesin saat menggunakan systemctl suspend, systemctl hibernate atau systemctl hybrid-sleep; kait pm-utils, termasuk kait khusus apa pun, tidak akan dijalankan. Namun, systemd menyediakan dua mekanisme serupa untuk menjalankan skrip khusus pada peristiwa ini.
Jadi cara yang tepat untuk melakukannya dengan systemd
(yang digunakan secara default di 15.04) adalah membuat file layanan berikut yang menjalankan skrip kontrol kecerahan saya di /etc/pm/sleep.d/
sebagai berikut:
-
/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
Kemudian jalankan perintah berikut untuk mengaktifkan layanan ini:
systemctl enable root-suspend.service
systemctl enable root-resume.service
Lihat artikel tertaut untuk detail selengkapnya.
Terkait:Dalam urutan apa perintah pipa dijalankan?