Как позволить необслуживаемым обновлениям начинать даже работать от батареи?

По умолчанию, необслуживаемые обновления триггер anacron, и он только запускается при работе питания переменным током и не запускается, работая от батареи. Этот beviavor легко понять для предотвращения ненужного питания. Так или иначе я хочу позволить необслуживаемым обновлениям запускаться, даже если машина, работающая от батареи, потому что некоторые народы моих друзей, включая меня, всегда используют свой ноутбук только на батарее. Следующий прием не работает над 16,04:

Набор ANACRON_RUN_ON_BATTERY_POWER=yes в /etc/default/anacron

Для Ubuntu 16.04, там другой способ позволить anacron или необслуживаемые обновления, начать даже работать от батареи?

Приемы по следующей теме не работают над 16,04: Выполненный anacron, даже когда на батарее (ноутбук)

Редактирование 1:

Согласно просьбе я использовал команду dpkg -L anacron | xargs grep -lwi power 2>/dev/null из комментария waltinator. Затем я изменяюсь как это, но никакое изменение, необслуживаемые обновления все еще не запускаются на батарее:

. Прокомментируйте следующие строки в /etc/init.d/anacron

# if test x"$ANACRON_RUN_ON_BATTERY_POWER" != x"yes" && test -x /usr/bin/on_ac_power
# then
#    /usr/bin/on_ac_power >/dev/null
#    if test $? -eq 1
#    then
#      log_progress_msg "deferred while on battery power"
#  log_end_msg 0
#  exit 0
#    fi
#fi
1
задан 31 October 2017 в 18:00

3 ответа

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

Выполните необслуживаемые обновления если машина, работающая от батареи, идеально подходящей для ноутбука. Сценарий, чтобы быть выполняется при входе в систему. Требование:

  • Необслуживаемые обновления, установленные и включенные, (связываются)
  • Позвольте необслуживаемые обновления, и способное обновление, чтобы быть выполняются без подсказки пароля с sudoers (ссылка)
  • Запустите скрипт при входе в систему (ссылка)

Сценарий:

#!/bin/bash
sleep 6m
level=$(cat /sys/class/power_supply/BAT0/capacity)
status=$(cat /sys/class/power_supply/BAT0/status)
lastupdate=$(cat /var/log/unattended-upgrades/unattended-upgrades.log | grep `date -I` | tail -1)
# Exit if not discharging
if [ "${status}" != "Discharging" ]; then
  exit 0
fi
# Exit if updated today
if [ -n "$lastupdate" ]; then
  exit 0
fi
# Update
if [ "${level}" -ge 70 ]; then  
    sudo apt update && sudo unattended-upgrades
fi
0
ответ дан 8 December 2019 в 03:38

На 16,04, можно записать systemd файл для достижения этого. Создайте файл /etc/systemd/system/anacron.service.d/override.conf со следующим содержанием:

[Unit]
ConditionACPower=
ConditionACPower=false

Обратите внимание, что некоторые cronjobs независимо проверяют на источник питания и отказываются работать на заряде батареи, например. /etc/cron.daily/mlocate

0
ответ дан 8 December 2019 в 03:38

согласно https://github.com/mvo5/unattended-upgrades/blob/master/data/50unattended-upgrades. Ubuntu можно добавить следующую опцию к файлу /etc/apt/apt.conf.d/50unattended-upgrades:

Unattended-Upgrade::OnlyOnACPower "false";

свериться sudo unattended-upgrades --verbose если это работает

0
ответ дан 8 December 2019 в 03:38

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

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