Openwrt启动后的脚本运行(二)

来源:互联网 发布:怎样修炼丹田知乎 编辑:程序博客网 时间:2024/06/09 16:49

Openwrt启动脚本的运行分为两个阶段,
preinit完成系统的初始化,
rcS依次启动了各个应用程序模块。

执行/etc/preinit脚本之后

boot_hook_init preinit_essentialboot_hook_init preinit_mainboot_hook_init failsafeboot_hook_init initramfsboot_hook_init preinit_mount_rootfor pi_source_file in /lib/preinit/*; do        . $pi_source_filedone

preinit执行的最后一个脚本为99_10_run_init
exec env - PATH=piinitpathpi_init_env $pi_init_cmd
pi_init_cmd为
pi_init_cmd=”/sbin/init”
因此开始运行busybox的init命令
busybox的init名执行inittab脚本,该脚本在/etc/inittab

[root@PandoraBox:/lib/functions]#cat /etc/inittab ::sysinit:/etc/init.d/rcS S boot::shutdown:/etc/init.d/rcS K stopttyS0::askfirst:/bin/loginttyS1::askfirst:/bin/login[root@PandoraBox:/lib/functions]#

可以看到sysinit尾系统初始化运行的/etc/init.d/rcS S boot脚本
shutdown为系统重启或者关机运行的脚本
tty*是用户通过串口或者telnet登录是,运行/bin/login登录系统
运行前的提示为:
“Please press Enter to activate this console.”

启动时运行的/etc/init.d/rcS S boot,执行后将会运行一系列的启动脚本,这些脚本在/etc/rc.d/目录下:

[root@PandoraBox:/etc/rc.d]#lsK10mjpg-streamer        S12rpcd                 S60dnsmasqK50dropbear             S19firewall             S60sambaK85odhcpd               S20network              S61avahi-daemonK89log                  S30set_kernel_timezone  S70usb_printerK90network              S35odhcpd               S90mjpg-streamerK90xCloud               S40fstab                S90qosK98boot                 S41sysntpd              S90xCloudK99umount               S50cron                 S94shairportS00sysfixtime           S50dropbear             S95doneS10boot                 S50qos_gargoyle         S96ledS10system               S50telnet               S99xunleiS11sysctl               S50uhttpdS12log                  S60dbus[root@PandoraBox:/etc/rc.d]#

这些启动脚本来自/etc/init.d/中的脚本,通过/etc/rc.common脚本,将init.d中的脚本链接到/etc/rc.d目录下,并根据这些脚本中的START和STOP的关键字,添加KSTOPS{START}的前缀,这样就决定了脚本运行的先后次序。

0 0
原创粉丝点击