Como permitir que atualizações autônomas sejam executadas mesmo com bateria?

1

Por padrão, os upgrades autônomos são acionados pelo anacron e só iniciam quando são executados com energia CA e não são iniciados quando são carregados com bateria. Este beviavor é fácil de entender para evitar desperdício de energia. De qualquer forma, desejo permitir que atualizações autônomas sejam iniciadas mesmo se a máquina estiver funcionando com bateria, porque alguns dos meus amigos, inclusive eu, sempre usam seu laptop apenas com bateria. O truque a seguir não funciona em 16.04:

Defina ANACRON_RUN_ON_BATTERY_POWER=yes em /etc/default/anacron

Para o Ubuntu 16.04, existe outra maneira de permitir que anacron, ou atualizações autônomas, comecem a rodar com bateria?

Os truques do tópico a seguir não funcionam no 16.04: Run anacron mesmo quando está na bateria (laptop)

Editar 1:

Conforme solicitado, usei o comando dpkg -L anacron | xargs grep -lwi power 2>/dev/null do comentário de waltinator. Então, eu mudo assim, mas nenhuma mudança, atualizações autônomas ainda não começam na bateria:

Comente as seguintes linhas em /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
    
por NicolasSmith 26.10.2017 / 09:24

3 respostas

0

Depois de procurar por muito tempo para permitir que o anacron comece mesmo com bateria, eu desisto. Porque eu encontrei um script para iniciar atualizações autônomas se a máquina rodasse com bateria, o que eu queria originalmente.

Execute as atualizações autônomas se a máquina funcionar com bateria, perfeita para laptop. Script a ser executado no login. Requisito:

  • Upgrades autônomos instalados e ativados ( link )
  • Permitir atualizações autônomas e atualizar apt para serem executadas sem prompt de senha com sudoers ( link )
  • Execute o script no login ( link )

Script:

 
#!/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
    
por NicolasSmith 30.10.2017 / 09:43
0

Em 16.04, você pode escrever um arquivo systemd para conseguir isso. Crie o arquivo /etc/systemd/system/anacron.service.d/override.conf com o seguinte conteúdo:

[Unit]
ConditionACPower=
ConditionACPower=false

Observe que alguns cronwares verificam independentemente a origem de energia e recusam a execução com energia da bateria, por exemplo, /etc/cron.daily/mlocate

    
por Nick 07.11.2017 / 11:11
0

De acordo com o link , você pode adicionar a seguinte opção ao arquivo /etc/apt/apt.conf.d/50unattended-upgrades :

Unattended-Upgrade::OnlyOnACPower "false";

verifique com sudo unattended-upgrades --verbose se funciona

    
por Martin 09.08.2018 / 09:58