стандарт процедуры загрузки а-ля SYSV: в /etc/inittab указывается уровень на который будет загружаться система: man init|inittab процедура init после выполнения определенных действий отрабатывает старт-стоп скрипты из /etc/rc[0-6,S].d, где 0 - halt системы(останов),6 - reboot, а 1(S) - single-user mode, 2,3,4 - обычно поднятие сети и multiuser mode. Вообще стандарт SYSV - это классическое дерево: /etc/init.d - здесь обычно находятся или создаются реальные скрипты /etc/rc[0-S].d - здесь находятся линки на скрипты из /etc/init.d, имена строятся следующим образом: - линки с именами KXY.name - отрабатывают стоповые процедуры сервиса - линки с именами SMN.name - отрабатывают стартовые процедуры сервиса зрительно воспринимается легко K[ill] service, S[tart] service, в свою очередь цифры XY и MN - означают порядок в котором будут выполняться стартовые и стоповые процедуры, как было сказано, это линки на скрипты из /etc/init.d, которые имеют обычно структуру: ----------------------------------------------------------------------- #!/bin/sh переменные функции { } case "$1" in 'start') ... ;; 'stop') ... ;; *) ... ;; esac exit 0 ------------------------------------------------------------ Из болванки верхнего скрипта видно что он создан как минимум для start, stop сервиса и выдачи какго-либо сообщения в случае запуска такого скрипта с другими параметрами, допустим это скрипт с именем: /etc/init.d/sshd и на него есть линки в /etc/rc2.d/S60.sshd и K20.sshd, которые означают что при загрузке системы, sshd будет стартовать на втором уровне и должен сделать это после поднятия сети, это мы должны обеспечить номером - у нас 60. А при останове системы, K20.sshd будет отрабатывать на втором уровне и должен сделать это в правильный и подходящий момент, обеспечивается соответствующей цифрой, в указанном случае - 20. соответственно при процедурах загрузки, останова, или просто перевода системы на нужный уровень: # telinit НОМЕР система (init), будет при переходе с уровня на уровень отрабатывать скрипты S... или K... для старта или стопа соответствующего сервиса в заданном порядке, чаще всего сервися стартую в одном порядке, а останавливаются в обратном (НО НЕ ВСЕ, и не всегда необходимо ряд сервисов останавливать при переходе с уровня на уровень) Это была присказка, а сказка в том что в различных Linux'ах, процедура init несколько модифицирована: название и расположение директорий, использование уровней загрузки. В большинстве своем, в Linux'ах для full-multiuser mode + network + xdm используется уровень загрузки==5. В этом случае нужно посмотреть наличие скриптов в директории: /etc/rc5.d/ или /etc/rc.d/rc5.d - наличие там запуска xdm,kdm,gnome... и если таковые существуют, в файле /etc/inittab указать чтобы система при загрузке выходила на 5'ый уровень и запускала X11: # grep default /etc/inittab id:5:initdefault: # Все остальное, это конкретные ньюансы каждого Linux'а. |