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.d
guión termina aquí con code=exited
. Sin embargo, agregar un sleep 10
al script antes de ejecutar los apt
comandos soluciona mi problema. Pensé que agregarlo $network
a mi # Required-Start
lista habría solucionado este problema por sí solo. ¿Existe una mejor manera de abordar este problema?
Estoy ejecutando esto Raspian Jessie 2016-03-18
si 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.