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

2

Eu 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

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

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 script init.d termina aqui com code=exited . No entanto, adicionar um sleep 10 ao script antes de executar os comandos apt corrige meu problema. Eu teria pensado que adicionar $network à minha # Required-Start lista teria corrigido esse problema sozinho. Existe uma maneira melhor de lidar com essa questão?

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

    
por ubomb 20.05.2016 / 22:33

1 resposta

0

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

    
por 21.05.2016 / 05:27