LSB 初始化服务依赖

LSB 初始化服务依赖

我添加了两个服务 A 和 B。B 依赖于 A,这意味着如果我启动 B,那么如果 A 尚未运行,则它应该自动启动。但是当我启动 B 时,A 不会自动启动。

你能告诉我哪里错了吗?我在下面提到了两种服务的 Init 脚本。

我不想使用 upstart 和 systemd。我想使用 init 脚本 (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 INFO注释部分仅适用于基于依赖关系的启动,其中依赖关系由外部脚本解析并用于在启动期间启动单独的 init.d 脚本。

因此,在您当前的配置中,服务 A 和 B 将在启动期间按正确的顺序启动,但手动启动一个初始化脚本不会神奇地启动另一个(它甚至没有任何方法知道它是否已经在运行)。

一些信息基于依赖性的引导在 Debian 中。

相关内容