Chkconfig игнорирует зависимости служб

Итак, у меня есть эти 2 файла:

/etc/init.d
    - service1
    - service2

service2 выглядит примерно так:

#!/bin/sh
# chkconfig: 2346 95 45
# description: desc
# processname: service2

### BEGIN INIT INFO
# Provides:          service2
# Required-Start:    service1
# Required-Stop:     service1
# Default-Start:     2 3 4 6
# Default-Stop:      0 6
# Short-Description: desc
# Description:       long desc
### END INIT INFO
export JAVA_HOME="/opt/java/jre"
export PATH=$JAVA_HOME/bin:$PATH
/opt/do/something.sh $*

Я хочу, чтобы при нормальной загрузке и перезагрузке service2 запускался после ] service1 завершается (около 12 минут, это сервер приложений), но они запускаются почти одновременно, и это нарушает service2 .

Почему сервисная система игнорирует установленные мной зависимости вверх? Здесь что-то не так? Есть ли способ проверить правильность выполнения порядка загрузки?

Я использую RHEL7, и обе службы были успешно добавлены с помощью

chkconfig --add <service_name>

Спасибо

0
задан 2 August 2018 в 16:22
1 ответ

Как Майкл Хэмптон упомянул в комментариях, вам следует преобразовать свои скрипты инициализации старого стиля в модули systemd .

Однако у вас могут быть причины продолжать использовать скрипты SysVinit в старом стиле.

В вашем скрипте может быть одна проблема: я, кажется, припоминаю, что раньше существовало требование , что не должно быть пустые строки перед строкой ### BEGIN INIT INFO .

Я не могу найти это требование в текущем документе стандартов LSB , но я думаю, что однажды я решил аналогичную проблему, удалив пустые строки перед разделом INIT INFO. Если моя память верна, это могло бы объяснить, почему ваши зависимости не соблюдаются.

Кроме того, зависимости в сценариях SysVinit не обязательно относятся к фактическим службам, а только к самим сценариям: RHEL7 systemd запустит сценарий service2 сразу после завершения сценария service1 , независимо от того, завершил ли фактический процесс службы, запущенный service1 , свой запуск или не. Итак, если для запуска ваших служб требуется нетривиальное время, сценарии должны явно дождаться полного запуска службы перед завершением работы.

1
ответ дан 4 December 2019 в 15:52

Теги

Похожие вопросы