LINUX.ORG.RU

Кидаешь скрипт в ./etc/init.d/

и в /etc/rcN.d делаешь на него линк ( не затерев уже имеющиеся ) N - желаемый уровень выполнения (runlevel), на котором должен запускаться скрипт

anonymous
()
Ответ на: комментарий от SadStork

в rc.local не работает (не вызывается)

а как сделать линк на него в rcN.d?

sorry за глупые вопросы...

anonymous
()

Допустим, надо выполнить скрипт my.script на runlevel 5 _ПОСЛЕ_ всех скриптов, которые там есть.

По порядку: 1) кидаем скрипт в /etc/init.d/ :

mv my.script /etc/init.d/

2) смотрим, что есть в /etc/rc5.d/:

ls /etc/rc5.d

У меня это выдаст примерно такое:

S10iptables@ S50proftpd@ S10sysklogd@ S20inetd@ S20scanlogd@ S89atd@ S11klogd@ S20logoutd@ S20sendmail@ S89cron@ S19nfs-common@ S20makedev@ S20ssh@ S90rmnologin@

3) немного теории (сильно упрощенно) : при переходе на runlevel 5 init запускает скрипты /etc/rc5.d/SNsomething по возрастанию номера N ( из приведенного списка сначала запустится S10iptables, S10sysklogd, потом S11klogd, потом S19nfs-common,.....). Обычно все содержимое директорий /etc/rcN.d/ - символические ссылки на файлы в /etc/init.d.

Посему достичь желаемого результата можно так:

ln -s /etc/init.d/my.script /etc/rc5.d/S99my.fucking.script

( создаем символическую ссылку, указывающую на нужный скрипт)

после всего этого ( дабы исполнить скрипт, не перезагружаясь ), говорим

/sbin/telinit 5

( ВНИМАНИЕ! все процессы, ранее запущенные, будут убиты !)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.