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

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

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

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

  1. ::sysinit:/etc/init.d/rcS S boot
  2. ::shutdown:/etc/init.d/rcS K shutdown
  3. ::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. 设置vim配置文件使得tab为4个空格

    1 set ts=4 2 set expandtab 3 set autoindent

  2. Android几秒后自动关闭dialog

    代码改变世界 Android几秒后自动关闭dialog AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext()); b ...

  3. 【Luogu】P2324骑士精神(IDA*)

    题目链接 当guess>limit-deep的时候return就好了. guess是估价函数,值为不在自己地盘上的骑士个数.limit是本次迭代阈值.deep是已经走了多少步. 这个优化是显然的 ...

  4. SPOJ LCS2 Longest Common Substring II ——后缀自动机

    后缀自动机裸题 #include <cstdio> #include <cstring> #include <iostream> #include <algo ...

  5. gevent 使用踩坑

    简单介绍 gevent 基本概念:   调度器: hub          上下文切换管理: switch          主循环: loop   协程: greenlet gevent 特性:  ...

  6. Redis的持久化——RDB

    前面说到redis的三大特性:缓存.分布式内存数据库.持久化,所以今天将为大家介绍redis的两种数据持久化技术RDB和AOF, 先介绍RDB吧. 一.RDB是什么? 1.RDB全称redis dat ...

  7. Spoj-DWARFLOG Manipulate Dwarfs

    Manipulate Dwarfs In a small village beyond seven hills and seven seas, Snow White lives together wi ...

  8. request response session的常用方法

    .request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例. 序号 方 法 说 明 1 object ...

  9. java 数据库连接的几个步骤

    Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@你的主 ...

  10. android开发里跳过的坑——camera调用setDisplayOrientation设置预览显示旋转无效

    问题原因,在surfaceview没有设置给camera之前调用了,所以,这个方法一定要在camera.setPreviewDisplay(surfaceHolder)这个之后,启动相机预览之前调用.