1

Я добавил две службы A и B. B зависит от A, а это означает, что если я начну B, то A должен запускаться автоматически, если он еще не запущен. Но А не появляется автоматически, когда я начинаю Б.

Подскажите, пожалуйста, где я не прав? Я упомянул сценарии Init для обеих служб ниже.

Я не хочу использовать upstart и systemd. Я хочу реализовать это с помощью сценариев инициализации (LSB).

B Начальный скрипт:

#!/bin/bash

# Author: xxxx xxxxx@xxxxx.xxx.xx

# chkconfig: 2345 95 05

# processname:  B
# config: /usr/local/etc/rc.conf
# pidfile: /var/run/B.pid


### BEGIN INIT INFO
# Provides: B
# Required-Start: $local_fs $network A
# Required-Stop: $local_fs $network A
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop System daemon
# Description:
### END INIT INFO

Начальный скрипт:

#!/bin/bash

# Author:       xxxx xxxxx@xxxxx.xxx.xx

# chkconfig:    2345 90 10

# processname:  A
# config: /usr/local/etc/rc.conf
# pidfile: /var/run/A.pid


### BEGIN INIT INFO
# Provides: A
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop System daemon
# Description: 
### END INIT INFO

1 ответ1

2

Это невозможно с помощью скриптов инициализации LSB. Они не соблюдают никаких зависимостей.

Этот раздел комментариев INIT INFO предназначен только для загрузки на основе зависимостей, где зависимость разрешается внешними сценариями и используется для запуска отдельных сценариев init.d во время загрузки.

Таким образом, в вашей текущей конфигурации службы A и B будут запускаться в правильном порядке во время загрузки, но запуск одного сценария инициализации вручную магическим образом не запустит другой (у него даже нет средств узнать, запущен ли он уже). ,

Некоторая информация о загрузке на основе зависимостей в Debian.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .