【问题标题】:What does START=03 mean in /etc/init.d scripts on openwrt?openwrt 上的 /etc/init.d 脚本中的 START=03 是什么意思?
【发布时间】:2015-03-23 11:45:24
【问题描述】:

我在 /etc/init.d/ 中看到了很多类似的模式:

START=03
START=40
START=96
etc...

例如这个脚本:

#!/bin/sh /etc/rc.common

    START=03

    start () {
    udevd --daemon
    }

stop() {
killall -9 udevd
}

这些数字究竟意味着什么?

【问题讨论】:

  • 是的,在 Openwrt 上

标签: linux bash openwrt init.d


【解决方案1】:

这只是您稍后可以在配置文件中使用的一些变量。 您可以使用美元符号“$”访问存储在变量名称前缀中的值:

NAME="Hello world"
echo $NAME

【讨论】:

    【解决方案2】:

    在此上下文中,STARTSTOP 用于指定引导顺序。带有START=10 的脚本将在带有START=9 的脚本之后运行,但在带有START=11 的脚本之前,STOP 编号较小的脚本将在编号较大的脚本之前停止。

    更准确地说:当要求启用/禁用它们时,变量决定了/etc/rc.common 将调用/etc/rc.d 中这些脚本的符号链接。将有/etc/rc.d/S${START}scriptname/etc/rc.d/K${STOP}scriptname,它们将分别按照启动和关闭时指定的顺序运行。

    另请参阅 OpenWrt 文档中有关 init scripts 的部分。

    【讨论】:

    • 如果两个或多个脚本的起始编号相同会怎样?
    • 目前它们按字典顺序执行(即,第一个字母具有较低 ASCII 值的那些将首先执行,如果它们相同,则第二个字母决定,依此类推)。不过,我不会依赖于此;例如,未来的版本可能会尝试并行化。
    • 那么简单的说,两个或多个脚本中放入相同的起始编号就不会出错?
    • 除非这两个脚本依赖于以特定顺序执行,否则不会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    相关资源
    最近更新 更多