Actualización al reiniciar con init.d

Actualización al reiniciar con init.d

Creé un script para agregar un montón de paquetes y actualizar el sistema en una instalación nueva. Aquí está la parte relevante de mi script init.d que me está dando 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

Hice el script ejecutable y lo registré con sudo update-rc.d update defaults. Cuando lo reviso después de reiniciar con sudo service update status, obtengo que todos los repositorios de paquetes no se resuelven:

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.

y el init.dguión termina aquí con code=exited. Sin embargo, agregar un sleep 10al script antes de ejecutar los aptcomandos soluciona mi problema. Pensé que agregarlo $networka mi # Required-Startlista habría solucionado este problema por sí solo. ¿Existe una mejor manera de abordar este problema?

Estoy ejecutando esto Raspian Jessie 2016-03-18si eso hace una diferencia, pero tengo la sensación de que no es así.

Respuesta1

agregar uno o dos servicios más para iniciar después del servicio de red como parte del requisito antes de ejecutar su servicio de actualización debería agregar un retraso más productivo en lugar de agregar un modo de suspensión 10 en su secuencia de comandos.

información relacionada