Openwrt启动后的脚本运行

来源:互联网 发布:公路工程预算软件纵横 编辑:程序博客网 时间:2024/06/07 11:55

Openwrt系统启动后,首先运行/etc/preinit脚本
以newifi y1s为例,刷入Pandorabox固件

#!/bin/sh# Copyright (C) 2006 OpenWrt.org# Copyright (C) 2010 Vertical Communications[ -z "$PREINIT" ] && exec /sbin/initexport PATH=/bin:/sbin:/usr/bin:/usr/sbinpi_ifname=pi_ip=192.168.1.1pi_broadcast=192.168.1.255pi_netmask=255.255.255.0fs_failsafe_ifname=fs_failsafe_ip=192.168.1.1fs_failsafe_broadcast=192.168.1.255fs_failsafe_netmask=255.255.255.0fs_failsafe_wait_timeout=2pi_suppress_stderr="y"pi_init_suppress_stderr="y"pi_init_path="/bin:/sbin:/usr/bin:/usr/sbin"pi_init_cmd="/sbin/init". /lib/functions.sh. /lib/functions/preinit.sh. /lib/functions/system.shboot_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_filedoneboot_run_hook preinit_essentialpi_mount_skip_next=falsepi_jffs2_mount_success=falsepi_failsafe_net_message=falseboot_run_hook preinit_main

从该脚本中可以看到,
/lib/functions.sh
/lib/functions/preinit.sh
/lib/functions/system.sh
这三个脚本为preinit叫执行提供了功能函数。
preinit脚本将执行初始化的一系列shell脚本的
目录下/lib/preinit/目录下

[root@PandoraBox:/lib/preinit]#ls01_reset_esw_port.sh         40_run_failsafe_hook02_default_set_state         50_indicate_regular_preinit03_preinit_do_ralink.sh      70_initramfs_test10_indicate_failsafe         80_mount_root10_indicate_preinit          99_10_failsafe_login10_sysinfo                   99_10_run_init30_failsafe_wait[root@PandoraBox:/lib/preinit]#

这些脚本可以根据需求进行修改
Openwrt将这些脚本五种hook分类:

preinit_essential
preinit_main
failsafe
initramfs
preinit_mount_root

根据名称执行这些脚本

0 0