LSB 초기화 서비스 종속성

LSB 초기화 서비스 종속성

두 가지 서비스 A와 B를 추가했습니다. B는 A에 종속됩니다. 즉, B를 시작하면 A가 아직 실행되고 있지 않으면 자동으로 시작되어야 합니다. 하지만 B를 시작할 때 A가 자동으로 나타나지 않습니다.

내가 어디에서 틀렸는지 말해줄 수 있나요? 아래 두 서비스 모두에 대한 Init 스크립트를 언급했습니다.

나는 upstart와 systemd를 사용하고 싶지 않습니다. 초기화 스크립트(LSB)를 사용하여 이를 구현하고 싶습니다.

B 초기화 스크립트:

#!/bin/bash

# Author: xxxx [email protected]

# 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 [email protected]

# 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

LSB init 스크립트에서는 이것이 불가능합니다. 종속성 자체를 존중하지 않습니다.

해당 INIT INFO주석 섹션은 종속성이 외부 스크립트에 의해 해결되고 부팅 중에 개별 init.d 스크립트를 시작하는 데 사용되는 종속성 기반 부팅에만 있습니다.

따라서 현재 구성에서는 부팅 중에 서비스 A와 B가 올바른 순서로 시작되지만 하나의 init 스크립트를 수동으로 시작하면 다른 스크립트가 마법처럼 시작되지 않습니다(이미 실행 중인지 알 수 있는 방법도 없습니다). .

에 대한 일부 정보종속성 기반 부팅데비안에서.

관련 정보