내 Linux 컴퓨터에 homebrew init.d 스크립트가 있고 Debian 4 및 Debian 5에서는 제대로 작동하지만 Debian 6(새 설치)에서는 시스템 시작 시에만 실행되고 재부팅 구현 전에는 실행되지 않습니다.
스크립트는 실제로 다음과 같습니다.
### BEGIN INIT INFO
# Provides: selfheal
# Required-Start:
# Required-Stop:
# X-Start-Before: mountall
# X-Stop-After: umountfs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: selfheal tool
# Description: Saves/restores the user partition at (re)boot
### END INIT INFO
echo $0 $*
sleep 3
# some useful stuff follows here...
reboot
시스템이 runlevel 6
파일 시스템을 전환하고 마운트 해제하는 것을 확인했습니다(위 참조 ) X-Stop-After: umountfs
. 내 스크립트에는 생명의 흔적이 보이지 않습니다 selfheal
.
시스템에서시작하다그러나 줄이 보이고 echo
스크립트가 실행 중입니다.
다음 명령을 사용하여 스크립트를 설치했습니다.
rm /etc/rc*.d/[SK]??selfheal && update-rc.d selfheal defaults
거기에는 오류/경고가 없습니다. 심볼릭 링크가 존재합니다:
root@intermodul:~# ls -al /etc/rc6.d/
total 12
drwxr-xr-x 2 root root 4096 May 16 16:09 .
drwxr-xr-x 68 root root 4096 May 16 16:07 ..
<snip>
lrwxrwxrwx 1 root root 18 May 16 15:09 K09umountfs -> ../init.d/umountfs
lrwxrwxrwx 1 root root 18 May 16 16:09 K10selfheal -> ../init.d/selfheal
lrwxrwxrwx 1 root root 20 May 16 15:09 K10umountroot -> ../init.d/umountroot
lrwxrwxrwx 1 root root 16 May 16 15:09 K11reboot -> ../init.d/reboot
-rw-r--r-- 1 root root 351 Jan 1 06:34 README
데비안 6은 동시 부팅을 제공한다는 점에 유의하십시오. "INIT INFO"에 문제가 있는 것 같습니다.
여기에 문제가 있나요?
고쳐 쓰다
CONCURRENCY=none
스크립트는 setup 시 실행되지만 /etc/init.d/rc
makefile 동시성을 활성화하고 싶습니다. 그렇다면 makefile 동시 모드에서 스크립트를 실행할 수 없는 이유는 무엇입니까?
답변1
나는 그 이유를 찾았습니다:
BEGIN INIT INFO
스크립트가 완료될 때까지 루트 파일 시스템이 마운트 해제되지 않도록 해당 섹션에 다음 줄이 필요합니다 .
Should-Stop: umountroot
이로 인해 umountroot
내 스크립트에 "종속성"이 발생합니다.