다음 LSB 헤더로 스크립트를 만들었습니다.
#! /bin/sh
### BEGIN INIT INFO
# Provides: updateservice
# Required-Start: $local_fs $time $network $named $syslog
# Required-Stop: $local_fs $time $network $named $syslog
# Default-Start:
# Default-Stop: 0
# Short-Description: Update Service
# Description: This script is meant to update and upgrade
# the system. It uses apt-get.
### END INIT INFO
넣고 /etc/init.d
링크를 만들어서 update-rc.d
내가 원하는 링크를 얻어보세요
lrwxrwxrwx 1 root root 19 Nov 29 13:08 /etc/rc0.d/K01update.sh -> ../init.d/update.sh
....하지만: 종료 시 스크립트가 실행되지 않습니다. 왜?
수동으로 실행하면 /etc/init.d/update.sh stop
내가 원하는 대로 정확하게 수행되지만 종료 시에는 실행되지 않습니다. 그리고 재미있는 사실처럼 동일한 스크립트와 구성이 Raspberry Pi에서도 예상대로 작동합니다.
너희들은 전문가들이야... 혹시 아는 사람 있어?
PS: uname -a
출력:
Linux d3bi4n 3.16.0-4-amd64 #1 SMP Debian 3.16.7-2 (2014-11-06) x86_64 GNU/Linux
내 초기화 시스템은 Systemd입니다.
답변1
출력에서:
lrwxrwxrwx 1 root root 19 Nov 29 13:08 /etc/rc0.d/K01update.sh -> ../init.d/update.sh
K
in은 K01update.sh
Linux가 실행 수준 0에 들어갈 때 프로세스가 01단계에서 종료됨을 의미합니다! 나는 데비안을 가지고 있지 않지만 둘 다 Linux이기 때문에 Redhat Linux에서는 chkconfig
이러한 우선 순위 수준에서 서비스를 시작하거나 중지 할지 여부를 나타내기 위해 아래와 같은 주석 줄을 추가해야 합니다 !
# chkconfig: 2345 70 80
첫 번째 숫자는 실행 수준(2345)이고 두 번째 숫자는 시작 우선 순위(70)를 나타내며 마지막 숫자는 중지 우선 순위(80)를 나타냅니다!
update-rc.d
그런데 꼭 필요한지 모르겠어요 !