Có nhiều cách nó có thể được thực hiện, vì có nhiều cách quản lý năng lượng khác nhau được thực hiện tùy thuộc vào những gì bạn đã cài đặt.
Công cụ đơn giản này hoạt động với tôi trên Debian Jessie tối giản mà không cần bất kỳ môi trường máy tính để bàn nào, chỉ với trình quản lý cửa sổ icewm nhỏ và nhanh. (Nó được cắt giảm vì cách khác quá chậm, và cách này vượt trội hơn so với Gnome trên phần cứng tốt hơn nhiều)
Cụ thể, tôi đã cài đặt các gói sau:
acpi acpi-fakekey acpi-support acpi-support-base acpid pm-utils
nhưng có NONE của những điều sau đây (đã thanh trừng chúng):
gnome * kde * systemd * uswsusp upower laptop-mode-tools bộ chính sách ngủ đông-1
Vì vậy, tôi chỉ cần đặt cái này vào /etc/cron.d/battery_low_check
(tất cả trong một dòng, được chia để dễ đọc):
*/5 * * * * root acpi --battery |
awk -F, '/Discharging/ { if (int($2) < 10) print }' |
xargs -ri acpi_fakekey 205
Nó nhanh chóng, sử dụng ít tài nguyên và không phụ thuộc vào các deamon khác (nếu thực tế, nó sẽ bị bỏ qua nếu chúng hoạt động - xem /usr/share/acpi-support/policy-funcs
chi tiết).
Nó hoạt động như thế nào: cứ sau 5 phút ( */5
- bạn có thể thay đổi thành mỗi phút chỉ bằng cách sử dụng *
nếu bạn cần kiểm tra pin thường xuyên hơn), nó sẽ thăm dò tình trạng pin (" acpi --battery ") và thực hiện lệnh chỉ sau khi xargs -ri
pin là " Xả "(nghĩa là bạn không được kết nối với AC) và trạng thái pin nhỏ hơn 10%
(" int ($ 2) <10 "- thoải mái điều chỉnh theo nhu cầu của bạn)
acpi_fakekey 205
theo mặc định sẽ gửi KEY_SUSPEND
sự kiện ACPI (như bạn đã nhấn một phím trên máy tính xách tay yêu cầu tạm dừng), sau đó sẽ làm bất cứ điều gì nó thường làm cho bạn (được định cấu hình /etc/default/acpi-support
) - đối với tôi, nó ngủ đông vào đĩa.
Tất nhiên, bạn có thể sử dụng lệnh khác thay vì acpi_fakekey 205
: như hibernate
(từ gói hibernate) s2disk
hoặc s2mem
(từ gói uswsusp), pm-suspend-hybrid
(từ gói pm-utils), v.v.
BTW, các số khóa ma thuật như KEY_SUSPEND = 205 ở trên được xác định trong /usr/share/acpi-support/key-constants
(một số thú vị khác có lẽ là KEY_SLEEP = 142 )
sleepd -b 40
và không có gì xảy ra sau mốc 40%. Tôi cũng đã thửsudo sleepd -b 40 -s pm-suspend
và không có gì xảy ra ...