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명령을 실행하기 전에 스크립트에 a를 추가하면 apt문제가 해결되었습니다. $network# Required-Start목록에 추가하면 이 문제가 저절로 해결될 것이라고 생각했습니다 . 이 문제를 처리하는 더 좋은 방법이 있습니까?

이것이 변화를 가져온다면 계속 실행하겠지만 Raspian Jessie 2016-03-18그렇지 않을 것 같은 느낌이 듭니다.

답변1

업데이트 서비스를 실행하기 전 요구 사항의 일부로 네트워크 서비스 뒤에 서비스를 하나 또는 두 개 더 추가하면 스크립트에 절전 10을 추가하는 것보다 더 효율적인 지연이 추가됩니다.

관련 정보