[Решено] Работа с автозагрузкой

Автор Myppomeu, 18 августа 2013, 21:02:21

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Myppomeu

Конфигурация:

Debian 7.1 х86, ядра пробовал 3.2 и 3.10

Суть проблемы:

В каталоге /etc/rc2.d/ лежали файлы:

S16ejabberd
S17mysql


Я переименовал 'S17mysql' в 'S15mysql'.
Как можно наблюдать в процессе загрузки, ничего не изменилось: сначала грузится ejabberd, затем mysql.

Похожие действия провернул с /etc/rc6.d/. Конечно, также ничего не изменилось.


Собственно, вопрос:

Что я сделал не так? Как вручную поменять порядок загрузки? Про update-rc.d я еще спрошу, сейчас мне интересно, почему система не реагирует на набор симлинков в /etc/rcN.d/.

Прошу вашей помощи, я совсем запутался.

P.S.

В гугле был. Ман читал. Эви Немет и Ко читал. Везде одно и то же: чем меньше номер NN в шаблоне SNNname, тем раньше стартует служба.

Lum

Sysvinit использует инитскрипты, написанные по определённым правилам, расположенные в /etc/init.d, а не произвольные исполняемые файлы.
/etc/init.d/README, man init
Русский ман http://manpages.ylsoftware.com/ru/update-rc.d.8.html


Myppomeu

Ок, благодарю.

А по остальной части?

Lum

А что в остальной части? Написать инитскрипт по шаблону /etc/init.d/skeleton. Дальше всё по ману.

Myppomeu

#4
Цитата: Lum от 19 августа 2013, 21:57:25Написать инитскрипт по шаблону /etc/init.d/skeleton. Дальше всё по ману.

Скрипты у меня есть, они написаны разработчиками приложений и работают отлично: это указанные S16ejabberd и S17mysql. Я потому и пишу, что по ману они должны загружаться в порядке именования, а грузятся как хотят.

Lum

сперва удалить симлинки, сделанные вручную

update-rc.d -f mysql remove
update-rc.d -f ejabberd remove

В /etc/init.d/ejabberd

# Required-Start:    $remote_fs $network mysql
# Required-Stop:    $remote_fs $network mysql


update-rc.d mysql defaults
update-rc.d ejabberd defaults

всё встанет на свои места

Myppomeu

Lum, огромное спасибо, теперь загружается в нужном порядке!

Еще есть вопрос по update-rc.d. При параметрах, отличных от дефолтных, симлинки он создает только для 2-го runlevel'а... а то не в том порядке, в котором я указал. Система практически чистая, стоит лишь несколько пакетов. Ничего в конфигах не правил. Как такое может быть, ума не приложу.

Есть мысли, почему система не реагирует на ручное переименование симлинков и ввод update-rc.d с произвольными параметрами?

Lum

посмотри в /etc/init.d dot-файлы .depend.*. Для update-rc.d приоритет - то, что в инитскриптах, ручные параметры могут игнорироваться (хотя в манах написано несколько другое)
А вообще кто бы что ни говорил, древний sysvinit - довольно запутанная, нелогичная и обвешанная костылями система