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.
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.
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.