Я хотел бы контролировать настройку батареи на определенную емкость (например, 20%), после чего ноутбук автоматически перейдет в режим ожидания или перейдет в спящий режим на длительный срок службы батареи. Есть ли какое-нибудь решение, пожалуйста? Обратите внимание: мой Vostrol 3450, Ubuntu 13.04, функция гибернации уже восстановлена.
Емкость аккумулятора, которую я могу найти, находится в емкости файла, как показано ниже:
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0/capacity
Я создал скрипт bash:
#!/bin/bash
load=$(cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0/capacity)
min_load=20
if [ $load <= min_load ]; then
pm-suspend
fi
На терминале я выполняю cli для тестирования :
sudo /bin/battery-suspend
Тогда результат не был показан:
/bin/battery-suspend: line 5: =: No such file or directory
Емкость аккумулятора хранится где-то в /proc
. Возможно /proc/acpi/battery
или что-то в этом роде. Вы можете написать скрипт bash, который считывает состояние батареи и запускает команду гибернации или приостановки. Это выглядело бы примерно так:
#!/bin/bash
load=$(cat /proc/acpi/battery)
min_load=20
if [ $load <= min_load ]; then
pm-suspend
fi
Я не даю никаких гарантий, что это правильно, поскольку я не знаю, как выглядит вывод cat /proc/acpi/battery
, и я не настолько хорош в bash-скрипте эксперт. Попробуйте и спросите, есть ли у вас проблемы.
Вы можете создать cronjob, который запускает скрипт каждую минуту или около того. Посмотрите этот урок для cronjobs. Вы хотите создать свою работу как пользователь root.
Можно попытаться использовать этот сценарий.
Это повышает уведомление и затем приостанавливает Ваш ПК, когда уровень заряда батареи достигает выбранного значения.
#! /bin/bash
# read battery percentage value
OUT=`upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep percentage`
# select only the int value
IFS=':' read -ra P <<< "$OUT"
PERCENTAGE="%"
BATTERY_VALUE=${P[1]%$PERCENTAGE}
# send a notification and then suspend pc
# if battery level is under 20%
if (( $BATTERY_VALUE <= "20")); then
notify-send "Battery Low level! Your PC will be suspended!"
# play sound if you want to be alerted
# paplay /usr/share/sounds/freedesktop/stereo/complete.oga
# wait for 3 seconds before suspend pc
sleep 3
# suspend your pc
pm-suspend
fi
Скопируйте этот сценарий в файл удара и переместите его в локальную папку мусорного ведра:
sudo mv <script_file> /usr/local/bin/
Где script_file является именем (или путь) Вашего сценария. Затем можно использовать cron
демон, чтобы выполнять его каждые 5 минут (или выбирать Вашу частоту выполнения) для проверки уровня заряда батареи. Так редактирование cron
как суперпользователь (сценарий нуждаются в разрешении суперпользователя приостановить ПК):
sudo crontab -e
Select предпочел редактора, и добавьте в конце файла эту строку:
*/5 * * * * /usr/local/bin/<script_file>
Измените script_file со своим названием сценария.
Теперь это должно работать. Проверьте его после системной перезагрузки.
Я надеюсь, что это поможет Вам.