Мой аккумулятор для ноутбука сосет и служит до 5 минут без зарядки. Иногда зарядное устройство выпадает без меня знание, делая компьютер отключенным неожиданно.
Существует ли способ получить уведомление момент, мое зарядное устройство выпадает? не то, когда батарея должна быть заряжена как Ubuntu, используется, чтобы сделать (Поскольку это не работает на мой ноутбук, и я бросил ту идею),
Простая линейная команда:
[[ $(acpi -b | grep -o "Discharging") ]] && notify-send "Alert" "Battery is not charging.\n Please plug your AC adapter!"
От man acpi
мы имеем:
NAME
acpi - Shows battery status and other ACPI information
SYNOPSIS
acpi [options]
DESCRIPTION
acpi Shows information from the /proc or the /sys filesystem, such as battery status or thermal information.
OPTIONS
-b | --battery
show battery information
Если Вы работаете acpi -b
и Вы, батарея заряжает режим, Вы получите этот результат этого:
Battery 0: Charging, 88%, 00:38:17 until charged
И если бы Ваша батарея не заряжается затем, результат был бы похож на это:
Battery 0: Discharging, 87%, 03:46:06 remaining
Затем Мы выглядим "Разряжающимися" в результате с этой командой:
acpi -b | grep -o "Discharging"
Если батарея не была в зарядке результата, будет, "Разряжаясь".
И наконец мы отправляем предупреждение в уведомление, если мы получили "Разряд" от вышеупомянутой команды:
[[ $(acpi -b | grep -o "Discharging") ]] && notify-send "Alert" "Battery is not charging.\n Please plug your AC adapter!"
Примечание: [[ Something ]]
всегда верный и [[ ! Something ]]
всегда ложь.
Теперь это - самый легкий способ, которым мы выполняем его в фоновом режиме, внутри некоторое время цикл. Затем я поместил команду в некоторое время цикл, и я проверяю состояние батареи между X интервалами времени. Как это:
while true
do
# Our command
sleep [number of seconds] # check the status every [number of seconds] seconds
done
И если бы Вы хотите запустить скрипт на запуске и каждые 5 минут, таким образом, конструкция была бы:
ChkCharge.sh
в моем корневом каталоге)/etc/rc.local
назвать Ваш сценарий (Ваш ChkCharge.sh
) + "и" заставить его выйти. как bash /home/USERNAME/ChkCharge.sh &
.Заключительный сценарий
#!/bin/bash
while true
do
[[ $(acpi -b | grep -o "Discharging") ]] && notify-send "Alert" "Battery is not charging.\n Please plug your AC adapter!"
sleep 300 # 300 seconds or 5 minutes
done
Конец. Перезагрузка и видит волшебство ;)
Это выглядит довольно простым, я не эксперт по сценарию удара, но возможно мог быть полезен для Вас
# sh script.sh
script.sh
содержание:
#! /bin/bash
power=$(cat /sys/class/power_supply/BAT1/status)
while true; do
actual=$(cat /sys/class/power_supply/BAT1/status)
if [ $actual != $power ]; then
power=$actual
notify-send $actual
fi
done
В основном, я читаю файл в sysfs
, который имеет информацию о Вашей батарее, существует больше информации там, которая могла быть интересной. Файл status
содержит флаг, указывающий, на самом деле ли Ваше устройство Зарядка или Разряд . Надежда, которая помогает Вам.