
Я создал скрипт инициализации в формате LSB и скопировал его в каталог /etc/init.d. Я могу вручную запустить, остановить, установить статус службы, и все работает нормально. Затем я пытаюсь настроить службу на автоматическую остановку/запуск с уровнями выполнения, выполнив:
update-rc.d service defaults
и я вижу предупреждения вроде:
update-rc.d: предупреждение: аргументы уровня запуска xxx start (нет) не соответствуют значениям lsb default-Start (3 4 5).
и initctl list" не отображает мою службу. Есть ли какие-то шаги, которые мне нужно выполнить, чтобы эта служба зарегистрировалась или отображалась правильно? (Я знаю, что в RedHat это "chkconfig --add xxx), но я недостаточно хорошо знаю Ubuntu.
решение1
initctl
является частью механизма upstart Uubuntu. initctl list
показывает только статус upstart-jobs. Ваш скрипт действительно является скриптом инициализации SysV.
Чтобы просмотреть состояние сценария инициализации SysV, используйте следующую команду:
service --status-all
Ваша услуга должна быть там указана.
Для создания ссылок в /etc/rcN
папках используйте следующую команду:
update-rc.d your_init_script defaults
Из страницы руководства update-rc.d
:
Если используются значения по умолчанию, то update-rc.d создаст ссылки для запуска службы на уровнях выполнения 2345 и для остановки службы на уровнях выполнения 016.