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 函数.

OpenWrt inittab的更多相关文章

  1. [转]Openwrt的Inittab

    转来一篇关于启动的文章,特意收藏.http://see.sl088.com/wiki/Inittab 文件位于/etc/inittab编辑方法vi /etc/inittab初始内容::sysinit: ...

  2. openwrt 的 inittab

    文件位于 /etc/inittab, 内容如下: root@hbg:/# cat /etc/inittab ::sysinit:/etc/init.d/rcS S boot::shutdown:/et ...

  3. OpenWrt启动过程分析

    openwrt是通过一系列shell脚本进行启动流程的组织,下面是启动流程的提纲.如 果想详细了解启动的过程,则需要仔细走读脚本文件. 1. 在make menuconfig 选择target平台 B ...

  4. openwrt增加串口登录需要密码

    https://wiki.openwrt.org/doc/howto/serial.console.password Openwrt 串口默认是没有密码的.Openwrt启动后,一个默认的密码将被启用 ...

  5. openwrt启动过程(脚本)

    来源:  http://wiki.openwrt.org/doc/techref/preinit_mount#first.boot 基本的openwrt启动顺序为: 1.boot loader loa ...

  6. OpenWrt启动过程分析+添加自启动脚本【转】

    一.OpenWrt启动过程分析 转自: http://www.eehello.com/?post=107 总结一下OpenWrt的启动流程:1.CFE->2.linux->3./etc/p ...

  7. [转] openwrt关闭调试串口

    转自: http://wiki.wrtnode.com/index.php?title=Release_UART/zh-cn 由于mt7620n只有一个UART lite接口,在原生的OpenWrt中 ...

  8. openwrt procd启动流程和脚本分析

    Linux内核执行start_kernel函数时会调用kernel_init来启动init进程,流程如下图: graph LR A[start_kernel] -->B(rest_init) B ...

  9. openWRT自学---初始化过程和主要脚本的分析

    参考文档: http://wiki.openwrt.org/doc/techref/process.boot http://blog.csdn.net/jk110333/article/details ...

随机推荐

  1. CSS里总算是有了一种简单的垂直居中布局的方法了

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  2. Codeforces Round #362 (Div. 2)

    闲来无事一套CF啊,我觉得这几个题还是有套路的,但是很明显,这个题并不难 A. Pineapple Incident time limit per test 1 second memory limit ...

  3. 【java基础 8】垃圾收集算法及内存分配策略

    本篇博客,主要介绍GC的收集算法以及根据算法要求所得的内存分配策略! 一.收集算法 收集算法,主要包括四种,分别是:Mark-Sweep(标记-清除).Copying(复制).Mark-Compact ...

  4. 【java基础 5】树形结构数据加载的思考

    前面两篇文章,分别介绍了使用递归和非递归算法加载树形结构数据的方式,本篇文章,则是自己闲下来的时候,进行的一点小思考. 一.什么地方会用到树形结构 刚开始一看到这种结构的时候,最先是想到了家谱.家谱就 ...

  5. ASP.NET(二):Application、Session和Server对象

    导读:在上篇博客中,总结了:Reques对象和Response对象的区别,以及IsPostBack属性的用法.其中说明Asp.net有6大对象,那么,这次就介绍剩下的3个对象,分别是:Applicat ...

  6. 刷题总结——竞赛得分(ssoj)

    题目: 题目描述 ZZH 在经历了无数次学科竞赛的失败以后,得到了一个真理:做一题就要对一题!但是要完全正确地做对一题是要花很多时间(包括调试时间),而竞赛的时间有限.所以开始做题之前最好先认真审题, ...

  7. qu de hanzi 首字母

    Function hztopy(hzpy As String) As StringDim hzstring As String, pystring As StringDim hzpysum As In ...

  8. profile, bashrc, source, setup.*sh

    一. source: 命令是使该文件立刻执行,这样刚才做的修改就可以立即生效了,否则要重新启动系统修改才能生效.(执行其后命令使之立即生效,不用重启) 二.bashrc: 1.linux系统:/etc ...

  9. sql-trace-10046-trcsess-and-tkprof

    https://oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof awr/statspack,sqlprofile,sq ...

  10. 春哥的nginx systemtap调试脚本简单介绍

    http://card.weibo.com/article/h5/s#cid=2304185311ad2d0102v9gd&vid=0&extparam=&from=11100 ...