如何在OpenWRT中管理启动初始化顺序

问题描述

在OpenWrt设备上,我具有以下两组服务来启动网络,但这是冲突的,只有一项可以选择启用启动功能

如何根据[B]的状态自动启用/禁用[A]?

  • /etc/init.d/A-> /etc/rc.d/S04A
  • /etc/init.d/B-> /etc/rc.d/S05B

以上所有服务均已安装到/etc/init.d/中,并将自动在/etc/rc.d/S*中启动,二者均以USE_PROCD=1的形式显示

  • 如果未启用[B],则应启用[A]
  • 如果启用[B],则应禁用[A]

初始化/etc/rc.d/S*的顺序是

  1. 启动
  2. Y
  3. switch-AB
  4. A
  5. B

我可以编写一个脚本来在A / B之间切换启用/禁用状态并重新启动,然后可以使用,但是必须手动调用它。我想要的是根据[B]的启用/禁用状态自动自动选择

我可以得出的结论是,将switch-AB初始化脚本放在[A]和[B]之前的开头,然后switch-AB会根据以下状态禁用/启用[A]: [B]

# /etc/init.d/switch-AB  

# Fix me! Should it also been put in procd ??

# this init script before [A] and [B]
#  - [A] will be enabled if [B] is disabled
#  - [A] will be disabled if [B] is enabled

START=04

B_enable=x

[ /etc/init.d/B enabed ] && B_enabled=1
[ /etc/init.d/B enabed ] || B_enabled=0

[ B_enable==1 ] && /etc/init.d/A disable

[ B_enable==0 ] && /etc/init.d/A enable    //This is not NEEDed since A is enabled by default.

在这种情况下,我只能使用一个命令/etc/init.d/B enable|disable进行切换,然后重新启动。

但是我不确定,有人可以提供更好的主意来添加一些评论吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)