Для управления батареей определенной емкости (например, 20%) ноутбук автоматически переходит в режим ожидания или находится в спящем режиме для длительного использования батареи.

Я хотел бы контролировать настройку батареи на определенную емкость (например, 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
0
задан 4 October 2015 в 15:50

2 ответа

Емкость аккумулятора хранится где-то в /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.

0
ответ дан 4 October 2015 в 15:50

Можно попытаться использовать этот сценарий.

Это повышает уведомление и затем приостанавливает Ваш ПК, когда уровень заряда батареи достигает выбранного значения.

#! /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 со своим названием сценария.

Теперь это должно работать. Проверьте его после системной перезагрузки.

Я надеюсь, что это поможет Вам.

0
ответ дан 4 October 2015 в 15:50

Другие вопросы по тегам:

Похожие вопросы: