Назад | Перейти на главную страницу

chkconfig создает служебные символические ссылки в неправильном порядке

В RHEL 6.3 у меня есть системная служба, которая должна запускаться после postgresql и httpd (порядка 64 и 85 соответственно), но chkconfig всегда помещает ее в порядок 50. Я попробовал провести эксперимент на виртуальной машине CentOS 6.0, чтобы убедиться, что я понял синтаксис строфы LSB.

я создал /etc/init.d/foo, владелец root, права 755, с этим текстом:

### BEGIN INIT INFO
# Provides: foo
# Required-Start: postgresql httpd
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Foo init script
### END INIT INFO

А потом побежал chkconfig --add foo. Результат: /etc/rc5.d/S86foo создается, как и ожидалось. (Остальные уровни выполнения также соответствуют ожиданиям.)

Я повторил тот же эксперимент на машине RHEL, и он создал /etc/rc5.d/S50foo вместо. Я не вижу различий между ними, что привело бы к разным результатам. На обеих машинах postgresql и httpd запускаются с одинаковыми порядками и уровнями выполнения. Есть предположения? Я мог бы просто использовать # chkconfig: 2345 86 50, или вручную переименовать символические ссылки службы в правильном порядке, но я пытаюсь задокументировать процесс установки для более поздних пользователей, и я хочу знать, как это сделать правильно, и понять, почему он не работает должным образом.

В системах RH вы должны использовать chkconfig строка, как указано в документации:

https://fedoraproject.org/wiki/Packaging:SysVInitScript#.23_chkconfig:_line

Что касается строки chkconfig:

Строка chkconfig: в сценарии инициализации в стиле SysV используется для определения уровней запуска, на которых служба должна запускаться по умолчанию. Он также используется для установки «приоритета» или порядка, в котором службы запускаются на уровне выполнения. Все initscripts в стиле Fedora SysV должна быть эта строка.

Что касается заголовка LSB:

Каждый сценарий инициализации Fedora в стиле SysV, который должен запускаться по умолчанию на любом уровне выполнения, должен включать эту строку в заголовок LSB и должен соответствовать список уровней запуска, определенных для запуска в заголовок Chkconfig.