#!/bin/sh /etc/rc.common

# Copyright (C) 2008-2012 OpenWrt.org

#启动顺序

START=90

#创建PID文件

SERVICE_USE_PID=1

find_release_info()

{

    [ -s /etc/openwrt_release ] && . /etc/openwrt_release

[ -z "$DISTRIB_DESCRIPTION" ] && [ -s /etc/openwrt_version ] && \

DISTRIB_DESCRIPTION="$(cat /etc/openwrt_version)"

echo "${DISTRIB_DESCRIPTION:-Unknown OpenWrt release} @ $(cat /proc/sys/kernel/hostname)"

}

# 启动

start() {

#需要调用network.sh中的函数,因此加载文件

. /lib/functions/network.sh

#定义变量

local enable_cdp

local enable_fdp

local enable_sonmp

local enable_edp

local lldp_class

local lldp_location

local lldp_description

#需要从/etc/config/lldpd配置文件中取变量,因此加载文件

config_load 'lldpd'

#从配置文件中将变量读出

config_get_bool enable_cdp 'config' 'enable_cdp' 0

config_get_bool enable_fdp 'config' 'enable_fdp' 0

config_get_bool enable_sonmp 'config' 'enable_sonmp' 0

config_get_bool enable_edp 'config' 'enable_edp' 0

config_get lldp_class 'config' 'lldp_class'

config_get lldp_location 'config' 'lldp_location'

config_get lldp_description 'config' 'lldp_description' "$(find_release_info)"

local ifaces

config_get ifaces 'config' 'interface'

local iface

for iface in $ifaces; do

local ifname=""

if network_get_device ifname "$iface" || [ -e "/sys/class/net/$iface" ]; then

append args "-I ${ifname:-$iface}"

fi

done

[ $enable_cdp -gt 0 ] && append args '-c'

[ $enable_fdp -gt 0 ] && append args '-f'

[ $enable_sonmp -gt 0 ] && append args '-s'

[ $enable_edp -gt 0 ] && append args '-e'

user_exists  lldp 121 || user_add  lldp 121 129

group_exists lldp 129 || group_add lldp 129

#创建文件夹,并加权限

mkdir -p /var/run/lldp

chown lldp:lldp /var/run/lldp

#拉起进程

service_start /usr/sbin/lldpd $args \

${lldp_class:+ -M $lldp_class} \

${lldp_description:+ -S "$lldp_description"}

[ -n "$lldp_location" ] && {

sleep 1

/usr/sbin/lldpctl -L "$lldp_location" > /dev/null 2>&1

}

}

#停止

stop()

{

service_stop /usr/sbin/lldpd

rm -f /var/run/lldpd.socket /var/run/lldpd.pid

}

lldpd启动脚本分析的更多相关文章

  1. HBase配置&启动脚本分析

    本文档基于hbase-0.96.1.1-cdh5.0.2,对HBase配置&启动脚本进行分析 date:2016/8/4 author:wangxl HBase配置&启动脚本分析 剔除 ...

  2. Spark配置&启动脚本分析

    本文档基于Spark2.0,对spark启动脚本进行分析. date:2016/8/3 author:wangxl Spark配置&启动脚本分析 我们主要关注3类文件,配置文件,启动脚本文件以 ...

  3. Hadoop启动脚本分析

    Hadoop启动脚本分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 能看到这篇博客的你估计对Hadoop已经有一个系统的了解了,最起码各种搭建方式你应该是会的,不会也没有关系, ...

  4. 4. hadoop启动脚本分析

    4. hadoop启动脚本分析 1. hadoop的端口 ``` 50070 //namenode http port 50075 //datanode http port 50090 //2name ...

  5. busybox rootfs 启动脚本分析(二)

    上次分析了busybox的启动脚本,这次分析一下init.d中一些脚本的内容. 参考链接 http://www.cnblogs.com/helloworldtoyou/p/6169678.html h ...

  6. busybox rootfs 启动脚本分析(一)

    imx6文件系统启动脚本分析.开机运行/sbin/init,读取/etc/inittab文件,进行初始化. 参考链接 http://blog.163.com/wghbeyond@126/blog/st ...

  7. hadoop启动脚本分析及常见命令

    进程------------------ [hdfs]start-dfs.sh NameNode NN DataNode DN SecondaryNamenode 2NN [yarn]start-ya ...

  8. linux系统 initrd.img中init启动脚本分析

    概述:这篇文章主体内容来源于网上转载.前面几篇文章倾向于制作initrd.img,这篇文章更倾向于initrd.img的运行过程:加载framebuff驱动 ide驱动和文件系统驱动,最后进入到真正的 ...

  9. 内核启动文件系统后第一个执行的文件(inittab启动脚本分析)

    Linux 开机脚本启动顺序: 第一步:启动内核 第二步:执行init (配置文件/etc/inittab) 第三步:启动相应的脚本,执行inittab脚本,并且执行里面的脚本/etc/init.d ...

随机推荐

  1. Time.timeScale、游戏暂停

    原文链接 项目里面一直在用Time.timeScale来做游戏的 1倍 2倍整体加速,今天我仔细看了一下Time.timeScale才发现之前我理解错了一些东西. Time.timeScale可以控制 ...

  2. SUSElinux的pam模块中$ISA变量的作用

    目的:限制非wheel用户切换至root 方法:vi /etc/pam.d/su文件,增加如下两行 auth sufficient /lib/security/pam_rootok.soauth re ...

  3. 网络爬虫之定向爬虫:爬取当当网2015年图书销售排行榜信息(Crawler)

    做了个爬虫,爬取当当网--2015年图书销售排行榜 TOP500 爬取的基本思想是:通过浏览网页,列出你所想要获取的信息,然后通过浏览网页的源码和检查(这里用的是chrome)来获相关信息的节点,最后 ...

  4. java http url post json

    import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import ja ...

  5. Winform_devexpress开发框架主界面设计

    做了好多年的C#开发,从.Net.Winform及第三方的DevExpress.无论什么样的系统,主界面的设计及风格无疑非常重要.从客户的角度考虑,要求功能区清晰,整体美观大方,这样才会有可能从第一视 ...

  6. HDU 5877 Weak Pair

    $dfs$序,线段树. 可以统计每一个节点作为$root$的子树上对答案的贡献,可以将树转换成序列.问题就变成了一段区间上求小于等于某个值的数有几个.用线段树记录排好序之后的区间序列,询问的时候,属于 ...

  7. JavaScript进阶(一)

     OK接下来,我们再次梳理一遍js并且提高一个等级. 众所周知,web前端开发者需要了解html和css,会只用html和css创建一个漂亮的页 面,但是这肯定是不够的,因为它只是一个静态的页面,我们 ...

  8. Python基础知识学习_Day3

    一.字典用法 字典是一种key-value数据类型,通过key获取具体value的内容,字典的特性是无序.去重. 增删改查用法如下: 1.1基本增删改查操作 name = {"," ...

  9. centos 设置删除提示

    centos 设置删除.覆盖提示 相信好多用linux的同学都用过cp这个命令来覆盖文件,但是新建的普通用户不会有任何提示,这时候心里就咯噔一下,赶紧看看新文件的是不是传上去了.如果加上提示,是不是就 ...

  10. github本地库及clone常用命令

    新建本地库 1. cd d: 2. mkdir git 3. cd git 4. git init 5. git remote add  origin git@github.com:swportal/ ...