Atualização na reinicialização com init.d

Atualização na reinicialização com init.d

Criei um script para adicionar vários pacotes e atualizar o sistema em uma nova instalação. Aqui está a parte relevante do meu script init.d que está me causando problemas:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          update
# Required-Start:    $local_fs $syslog $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Update my system
### END INIT INFO

. /lib/lsb/init-functions

case "$1" in
  start)
    log_daemon_msg "Starting update"

    apt-get --assume-yes update &&
    apt-get --assume-yes dist-upgrade

    log_end_msg $?
    ;;
  *)
    echo "Usage: $0 start" >&2
    exit 2
    ;;
esac

exit 0

Tornei o script executável e registrei-o com o arquivo sudo update-rc.d update defaults. Quando eu verifico isso após uma reinicialização sudo service update status, recebo todos os repositórios de pacotes que não conseguem resolver:

W: Failed to fetch http://.../Release.gpg  Temporary failure resolving '...'
W: Some index files failed to download. They have been ignored, or old ones used instead.

e o init.dscript termina aqui com code=exited. No entanto, adicionar um sleep 10ao script antes de executar os aptcomandos corrige meu problema. Eu teria pensado que adicionar itens $networkà minha # Required-Startlista já resolveria esse problema por si só. Existe uma maneira melhor de lidar com esse problema?

Estou analisando isso Raspian Jessie 2016-03-18se isso faz diferença, mas tenho a sensação de que não.

Responder1

adicionar mais um ou dois serviços para iniciar após o serviço de rede como parte do requisito antes de executar seu serviço de atualização deve adicionar um atraso mais produtivo em vez de adicionar um sleep 10 em seu script.

informação relacionada