여러 패키지를 추가하고 새로 설치할 때 시스템을 업데이트하는 스크립트를 만들었습니다. 문제를 일으키는 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을 추가하는 대신 더 생산적인 지연이 추가됩니다.