FastNetMon

Sunday 5 December 2010

Последовательность запуска задач в пределах заданного runlevel в Debian

С пониманием, когда запускается какой runlevel, обычно проблем нету, но есть проблемы с пониманием, как задачи упорядочиваются внутри конкретного runlevel. Рассмотрим на примере /etc/rcS.d/. В данной папке есть очень много файлов с именами вида SNNимя, где NN - двухзначное число:
ls
README S05keymap.sh S20module-init-tools S35quota S45mountnfs.sh S70x11-common
S01glibc.sh S07hdparm S25mdadm-raid S36mountall-bootclean.sh S46mountnfs-bootclean.sh S75sudo
S02hostname.sh S08hwclockfirst.sh S26lvm2 S36udev-mtab S47lm-sensors S99stop-bootlogd-single
S02mountkernfs.sh S10checkroot.sh S30checkfs.sh S37mountoverflowtmp S48console-screen.sh
S03udev S11hwclock.sh S30procps S39ifupdown S55bootmisc.sh
S04mountdevsubfs.sh S12mtab.sh S34fuse S40networking S55urandom
S05bootlogd S18ifupdown-clean S35mountall.sh S43portmap S70screen-cleanup

Последовательность тут очень простая: загрузка начинается со скриптов c меньшим номером и переходит к скриптам с большим номером.

Оригинал:
The two-digit number mm is used to determine the order in which to run the scripts: low-numbered links have their scripts run first. For example, the K20 scripts will be executed before the K30 scripts. This is used when a certain service must be started before another. For example, the name server bind might need to be started before the news server inn so that inn can set up its access lists. In this case, the script that starts bind would have a lower number than the script that starts inn so that it runs first:
/etc/rc2.d/S17bind
/etc/rc2.d/S70inn

Есть очень удобный способ просмотра последовательности запуска:
find /etc/rcS.d/ | sort -g
/etc/rcS.d/
/etc/rcS.d/README
/etc/rcS.d/S01glibc.sh
/etc/rcS.d/S02hostname.sh
/etc/rcS.d/S02mountkernfs.sh
/etc/rcS.d/S03udev
/etc/rcS.d/S04mountdevsubfs.sh
/etc/rcS.d/S05bootlogd
/etc/rcS.d/S05keymap.sh
/etc/rcS.d/S07hdparm
/etc/rcS.d/S08hwclockfirst.sh
/etc/rcS.d/S10checkroot.sh
/etc/rcS.d/S11hwclock.sh
/etc/rcS.d/S12mtab.sh
/etc/rcS.d/S18ifupdown-clean
/etc/rcS.d/S20module-init-tools
/etc/rcS.d/S25mdadm-raid
/etc/rcS.d/S26lvm2
/etc/rcS.d/S30checkfs.sh
/etc/rcS.d/S30procps
/etc/rcS.d/S34fuse
/etc/rcS.d/S35mountall.sh
/etc/rcS.d/S35quota
/etc/rcS.d/S36mountall-bootclean.sh
/etc/rcS.d/S36udev-mtab
/etc/rcS.d/S37mountoverflowtmp
/etc/rcS.d/S39ifupdown
/etc/rcS.d/S40networking
/etc/rcS.d/S43portmap
/etc/rcS.d/S45mountnfs.sh
/etc/rcS.d/S46mountnfs-bootclean.sh
/etc/rcS.d/S47lm-sensors
/etc/rcS.d/S48console-screen.sh
/etc/rcS.d/S55bootmisc.sh
/etc/rcS.d/S55urandom
/etc/rcS.d/S70screen-cleanup
/etc/rcS.d/S70x11-common
/etc/rcS.d/S75sudo
/etc/rcS.d/S99stop-bootlogd-single

Источник: http://www.debian.org/doc/debian-policy/ch-opersys.html#s-sysvinit

No comments :

Post a Comment

Note: only a member of this blog may post a comment.