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