• OpenWrt inittab


    OpenWrt 启动时会执行 rc.d/ 下的脚本. 这篇文章 介绍了启动脚本里的规则.

    K50dropbear -> ../init.d/dropbear
    K85odhcpd -> ../init.d/odhcpd
    K89log -> ../init.d/log
    K90network -> ../init.d/network
    K98boot -> ../init.d/boot
    K99umount -> ../init.d/umount
    S00sysfixtime -> ../init.d/sysfixtime
    S10boot -> ../init.d/boot
    S10system -> ../init.d/system
    S11sysctl -> ../init.d/sysctl
    S12log -> ../init.d/log
    S19firewall -> ../init.d/firewall
    S20network -> ../init.d/network
    S35odhcpd -> ../init.d/odhcpd
    S50cron -> ../init.d/cron
    S50dropbear -> ../init.d/dropbear
    S50qos -> ../init.d/qos
    S50telnet -> ../init.d/telnet
    S60dnsmasq -> ../init.d/dnsmasq
    S80trelay -> ../init.d/trelay
    S90qdmsg -> ../init.d/qdmsg
    S95done -> ../init.d/done
    S96led -> ../init.d/led
    S98sysntpd -> ../init.d/sysntpd
    
    1. rc.d/ 下的脚本都是链接到 init.d/ 下的.
    2. S开头的表示在开机时执行, K开头的表示在关机时执行. 数字序号用来控制各脚本的执行的顺序.
    3. 脚本里 boot() 函数会在开机时默认被执行
    4. start_service()

    boot() 函数在开机时默认被调用

    procd 解析 /etc/inittab 文件. 该文件内容如下:

    ::sysinit:/etc/init.d/rcS S boot
    ::shutdown:/etc/init.d/rcS K shutdown
    ::askconsole:/bin/ash --login
    
    1. sysinit 指明启动初始化时, 在 procd 内针对它有相应的回调函数. 该函数到 /etc/rc.d/ 下找脚本执行.
    2. /etc/init.d/rcS 的本意是指明处理该过程的脚本. OpenWrt 中在 procd 中已经预设后处理函数为 rcS().
    3. S 表示找 /etc/rc.d/ 下面名字以 'S' 开头的脚本.
    4. boot 就是执行该脚本中时以 boot 为参数. 执行脚本中的 boot 函数.

    同里, 也可以知道 shutdown 里的处理过程:

    1. 找 /etc/rc.d/ 下名字以 'K' 开头的脚本.
    2. 以 shutdown 为参数执行该脚本, 即执行脚本中的 shutdown 函数.
  • 相关阅读:
    javaXML文件的写入之DOM和DOM4J
    javaXML文件解析之DOM4J实操
    java解析XML文件四种方法之引入源文件
    java文件传输之文件编码和File类的使用
    java中Collections.sort()方法实现集合排序
    java集合的contains(obj)方法的实现
    java集合及其方法
    java基本数据类型及其包装类
    java类的种类
    java类定义、变量类型、构造函数
  • 原文地址:https://www.cnblogs.com/sammei/p/4126517.html
Copyright © 2020-2023  润新知