Обновление состояния батареи при отключении питания занимает слишком много времени.

Обновление состояния батареи при отключении питания занимает слишком много времени.

У меня есть ИБП (Back-UPS ES 850M2), подключенный через USB к моему настольному ПК (Ubuntu 19.10). Когда я отсоединяю шнур питания, батарея в верхней строке не меняется, требуется от 2 до 5 минут, чтобы измениться и отобразить состояние батареи и процент, а затем показать уведомление «Работает от батарей...» После повторного подключения шнура питания та же ситуация, не меняется мгновенно... батарея все еще отображает процент и показывает «разрядка...» в течение нескольких минут..

Даже батарея всегда отображает в меню «Оценка...», хотя в настройках отображается правильный процент:

Меню:

введите описание изображения здесь

Настройки:

введите описание изображения здесь

Я проверяю состояние ИБП с помощью apcaccessи tail /var/log/apcupsd.events, когда я отключаю шнур питания, журналы отображаются мгновенно.

Power failure.
Running on UPS batteries.

И после повторного подключения мгновенно отобразится:

Mains returned. No longer on UPS batteries.
Power is back. UPS running on mains.

apcaccessотображает время и статус правильно, мой вопрос в том, почему рабочий стол не меняет статус батареи мгновенно?. Это немного раздражает, потому что обновление реального статуса батареи занимает слишком много времени, и компьютер даже выключился, потому что я думал, что у меня еще осталось время. Есть предложения?, любая помощь приветствуется заранее!

решение1

Наконец я нашел решение, спасибо @WinEunuuchs2Unix за предложения

Как описано здесь:

Получайте статус батареи для более частого обновления или при включении питания переменного тока/выходе из спящего режима.

Вся проблема в upower, служба UPower выполняет вызовы для обновления/обновления информации о батарее.

Затем вам нужно выполнить принудительное обновление, для начала узнайте имя вашего устройства:

upower -e

/org/freedesktop/UPower/devices/ups_hiddev0

создать партию:

сохранить-батарею-обновленной.sh

#!/bin/bash
while sleep 2; do
   busctl call --system org.freedesktop.UPower /org/freedesktop/UPower/devices/ups_hiddev0 org.freedesktop.UPower.Device Refresh
done

и добавьте его в качестве скрипта запуска.

Я настраиваю скрипт с 2секундой между обновлениями, меняйте по своему усмотрению.

Связанный контент