Openwrt的ifup和ifdown分析
来源:互联网 发布:c罗 知乎 精华 编辑:程序博客网 时间:2024/05/23 13:40
/sbin/ifup脚本源码:
#!/bin/sh ifup_all= setup_wifi= if_call() { local interface="$1" for mode in $modes; do ubus call network.interface $mode "{ \"interface\" : \"$interface\" }" done } case "$0" in *ifdown) modes=down;; *ifup) modes="down up" setup_wifi=1 ;; *) echo "Invalid command: $0";;esac while :; do case "$1" in -a) ifup_all=1 shift ;; -w) setup_wifi= shift ;; *) break ;; esac done [ "$modes" = "down up" ] && ubus call network reload if [ -n "$ifup_all" ]; then for interface in `ubus -S list 'network.interface.*'`; do if_call "${interface##network.interface.}" done [ -n "$setup_wifi" ] && /sbin/wifi up exit else ubus -S list "network.interface.$1" > /dev/null || { echo "Interface $1 not found" exit } if_call "$1" fi if [ -n "$setup_wifi" ] && grep -sq config /etc/config/wireless; then . /lib/functions.sh find_related_radios() { local wdev wnet config_get wdev "$1" device config_get wnet "$1" network if [ -n "$wdev" ]; then for wnet in $wnet; do if [ "$wnet" = "$network" ]; then append radio_devs "$wdev" "$N" fi done fi } local radio_devs local network="$1" config_load wireless config_foreach find_related_radios wifi-iface local dev for dev in $(echo "$radio_devs" | sort -u); do /sbin/wifi up "$dev" done fi
ifup和ifdown的脚本一模一样,shell代码中做了一下case选择。
如果执行ifup wan , 则关闭wan口,分析一下如何实现
ifup wan之后,进入case选择ifup
设定两个标志位
modes=”down up”
setup_wifi=1
进入while循环
while :; do case "$1" in -a) ifup_all=1 shift ;; -w) setup_wifi= shift ;; *) break ;; esacdone
这里解析了ifup -a 和 ifup -w命令
ifup_all 调用了ubus -S list ‘network.interface.*’
然后wifi up
setup_wifi
执行 wifi up
后面的为修改/etc/config/wireless的配置
0 0
- Openwrt的ifup和ifdown分析
- ifconfig、ifup、ifdown的用法
- ifup/ifdown ethX 和 ifconfig ehtX up/down的区别
- ifup/ifdown
- ifup/ifdown
- 网络常用命令(三)ifconfig、ifup和ifdown
- ifconfig、ifup、ifdown
- ifup,ifdown,ifconfig
- Linux ifup ifdown 命令
- ifconfig、ifup、ifdown详解
- ifconfig eth0 up/down与ifup/ifdown eth0的区别
- 5.1.1 ifconfig、ifup、ifdown
- ifconfig / ifup /ifdown 命令学习
- 鸟哥 服务器 笔记: Linux 常用的网络命令 route ifconfig ifup ifdown
- [学习笔记] 网络命令 ifup, ifdown
- /etc/qemu-ifup与/etc/qemu-ifdown
- 设置网络参数命令--ifconfig,route,ip,ifup,ifdown
- 当Linux系统出现重启网卡出现ifup和ifdown文件或目录不存在问题,Shutting down interface eth0: /etc/init.d/functions:line 517:
- NFS
- volatile深入分析
- Eclipse使用Maven创建项目是报错:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quick
- 常见的动态规划问题分析与求解
- Markdown使用心得
- Openwrt的ifup和ifdown分析
- 数据库性能优化三:程序操作优化
- .Net Framework框架图详解
- 使用UDP编写一个四选一数据选择器
- IPv6 network stack bigpicture
- JSP 截取字符串 { EL表达式截取字符串}
- CSS中怎么让DIV居中
- 字符串验证工具类
- presentModalViewController使用 UIModalPresentationFormSheet,无法改变frame大小