По умолчанию автоматические обновления запускаются с помощью anacron, и он запускается только при работе от сети переменного тока и не запускается при работе от батареи. Этот бевиавор легко понять, чтобы избежать потери энергии. В любом случае, я хочу разрешить запуск без присмотра, даже если машина работает от батареи, потому что некоторые люди моих друзей, включая меня, всегда используют свой ноутбук только на батарее. Следующий трюк не работает с 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
После долгого поиска, чтобы anacron запускался даже на батарею, я сдаюсь. Потому что я обнаружил, что сценарий запускает автоматические обновления, если машина работает от батареи, которую я изначально хотел.
Запускайте автоматические обновления, если машина работает от батареи, идеально подходит для ноутбука. Сценарий, выполняемый при входе в систему. Требование:
Автоматические обновления установлены и включены (ссылка) Разрешить автоматическое обновление и обновление apt без запуска пароля с помощью 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
После долгого поиска, чтобы anacron запускался даже на батарею, я сдаюсь. Потому что я обнаружил, что сценарий запускает автоматические обновления, если машина работает от батареи, которую я изначально хотел.
Запускайте автоматические обновления, если машина работает от батареи, идеально подходит для ноутбука. Сценарий, выполняемый при входе в систему. Требование:
Автоматические обновления установлены и включены (ссылка) Разрешить автоматическое обновление и обновление apt без запуска пароля с помощью 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
После долгого поиска, чтобы anacron запускался даже на батарею, я сдаюсь. Потому что я обнаружил, что сценарий запускает автоматические обновления, если машина работает от батареи, которую я изначально хотел.
Запускайте автоматические обновления, если машина работает от батареи, идеально подходит для ноутбука. Сценарий, выполняемый при входе в систему. Требование:
Автоматические обновления установлены и включены (ссылка) Разрешить автоматическое обновление и обновление apt без запуска пароля с помощью 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
В 16.04 вы можете написать файл systemd для этого. Создайте файл /etc/systemd/system/anacron.service.d/override.conf со следующим содержимым:
[Unit]
ConditionACPower=
ConditionACPower=false
Обратите внимание, что некоторые cronjobs независимо проверяют источник питания и отказываются работать от батареи, например. [F3]
В 16.04 вы можете написать файл systemd для этого. Создайте файл /etc/systemd/system/anacron.service.d/override.conf со следующим содержимым:
[Unit]
ConditionACPower=
ConditionACPower=false
Обратите внимание, что некоторые cronjobs независимо проверяют источник питания и отказываются работать от батареи, например. [F3]
В 16.04 вы можете написать файл systemd для этого. Создайте файл /etc/systemd/system/anacron.service.d/override.conf со следующим содержимым:
[Unit]
ConditionACPower=
ConditionACPower=false
Обратите внимание, что некоторые cronjobs независимо проверяют источник питания и отказываются работать от батареи, например. [F3]