问题描述
在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*
的顺序是
- 启动
- Y
- switch-AB
- A
- 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 (将#修改为@)