Обновление при перезагрузке с помощью init.d

Обновление при перезагрузке с помощью init.d

Я создал скрипт для добавления набора пакетов и обновления системы при новой установке. Вот соответствующая часть моего скрипта init.d, которая вызывает у меня проблемы:

#!/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

Я сделал скрипт исполняемым и зарегистрировал его с помощью sudo update-rc.d update defaults. Когда я проверяю его после перезагрузки с помощью sudo service update status, я получаю сообщение о том, что все репозитории пакетов не могут быть разрешены:

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.

и init.dскрипт заканчивается здесь на code=exited. Однако добавление sleep 10к скрипту перед запуском aptкоманд исправляет мою проблему. Я бы подумал, что добавление $networkв мой # Required-Startсписок исправит эту проблему само по себе. Есть ли лучший способ справиться с этой проблемой?

Я попробую это сделать, Raspian Jessie 2016-03-18если это что-то изменит, но у меня такое чувство, что это не так.

решение1

Добавление еще одной или двух служб для запуска после сетевой службы в качестве части требования перед запуском службы обновления должно добавить более продуктивную задержку, чем добавление sleep 10 в ваш скрипт.

Связанный контент