Запускать символические ссылки 'S' при завершении работы и перезапуске уровней запуска?
Почему в rc0.d и rc6.d есть стартовые символические ссылки 'S00-S99'? Ubuntu 13.04 список каталогов:
$ ls -l /etc/init.d/rc6.d
lrwxrwxrwx 1 root root 29 Oct 30 12:05 K10unattended-upgrades -> ../init.d/unattended-upgrades
lrwxrwxrwx 1 root root 20 Apr 4 15:07 K21postgresql -> ../init.d/postgresql
-rw-r--r-- 1 root root 351 Jan 30 04:58 README
lrwxrwxrwx 1 root root 18 Mar 6 2011 S20sendsigs -> ../init.d/sendsigs
lrwxrwxrwx 1 root root 17 Mar 6 2011 S30urandom -> ../init.d/urandom
lrwxrwxrwx 1 root root 22 Mar 6 2011 S31umountnfs.sh -> ../init.d/umountnfs.sh
lrwxrwxrwx 1 root root 20 Oct 7 2012 S35networking -> ../init.d/networking
lrwxrwxrwx 1 root root 18 Mar 6 2011 S40umountfs -> ../init.d/umountfs
lrwxrwxrwx 1 root root 20 Mar 6 2011 S60umountroot -> ../init.d/umountroot
lrwxrwxrwx 1 root root 16 Mar 6 2011 S90reboot -> ../init.d/reboot
Как вы можете видеть первые два сценария являются сценариями 'K' (kill), чего мы и ожидали на уровнях выполнения rc0 и rc6, однако следующие семь сценариев являются сценариями 'start'.
Я прочитал скрипт /etc/init.d/rc и понял, что для уровней выполнения 0 и 6 $ ACTION жестко запрограммирован на stop [ 115] Итак, даже стартовые сценарии 'S' передаются команде 'stop':
case "$runlevel" in
0|6)
ACTION=stop
# Count down from 0 to -100 and use the entire bar
first_step=0
progress_size=100
step_change=-1
;;
Опять мой вопрос: зачем вообще беспокоиться о сценариях 'S00 - S99' в уровнях завершения работы и перезагрузки? Почему они не все символические ссылки «K00 - K99»?
Мне было интересно то же самое. См. Мой вопрос на . Какие аргументы передаются в сценарии инициализации при завершении работы .
Причина в том, что все сценарии в rc0.d
сначала вызываются с помощью start
, а затем снова с помощью stop
. Таким образом, вы можете заказать финальные сценарии завершения работы независимо от любых других сценариев уничтожения, которые будут выполняться во время завершения работы.