Зависимости update-rc.d и init.d

Поэтому я пытаюсь написать несколько скриптов init.d, удовлетворяющих LSB, чтобы они работали надлежащим образом при запуске и завершении работы. К сожалению, у меня проблемы с LSB/update-rc.d для удовлетворения зависимостей.

# Required-Start: $network $local_fs hadoop-namenode hadoop-datanode zookeeper-server
# Required-Stop:  $network $local_fs hadoop-namenode hadoop-datanode zookeeper-server
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6

однако, когда я запускаю update-rc.d по умолчанию, он просто генерирует используемые значения по умолчанию с тем же временем начала, что и уже существующие зависимости, что ужасно ломает вещи. Я что-то упустил с update-rc.d или LSB, чтобы настроить это?

Если это актуально, это Ubuntu 12.04

2 ответа

Чтобы ваш скрипт запускался позже в последовательности загрузки, просто добавьте порядковый номер, например 98 в следующей команде. Тогда большинство зависимостей будут удовлетворены.

Однажды мне пришлось использовать загрузочный скрипт, который зависел от других загрузочных скриптов. Это принесло много неприятностей. В конце концов я использовал эту команду для решения проблемы:

cd /etc/init.d
sudo update-rc.d my_script defaults 98

98 означает my_script при загрузке получает порядковый номер 98, кажется, что он находится в диапазоне от 1 до 99, а большинство других загрузочных скриптов имеют меньшие числа, это гарантирует, что у моего скрипта все свои зависимости готовы.

Кстати, чтобы удалить старый скрипт, это можно использовать:

sudo update-rc.d -f my_old_script remove
# -f means 'force'

Надеюсь это поможет.

Этот подход больше не работает в некоторых системах (например, Debian Squeeze). Число просто игнорируется без объяснения причин. Предпочтительный метод: http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html

Посмотрите на объявление скрипта "Required-Start:".

Другие вопросы по тегам