dhcpd开源工程(三) dhcpd启动脚本

脚本设计:脚本中必须包含个函数,start(),stop(),restart(),reload(),例如,键入service dhcpd start命令,会调用start函数,restart()和reload()很简单,stop函数中kill进程,并杀出pid文件,这里主要写start函数的设计思路,先检查是否有配置文件,若没有的话,直接退出并打印信息;检查指定路径是否有租约文件,若没有,创建;检查是否有pid文件,若有的话,说明dhcpd服务已经启动,退出并打印信息;调用dhcpd启动文件,-4表示是dhcpv4,-q表示自动发现接口,-cf指定conf文件路径,-lf指定租约文件路径
内容如下
#=============dhcpd content====================
config_file=/etc/dhcpd.conf
pidfile=/var/run/dhcpd.pid
lease_file=/var/db/dhcpd.leases
./etc/rc.d/init.d/functions
./etc/sysconfig/network

if [ ! -e $config_file ]; then
    echo " No config file at $config_file"
    exit 0
fi
RETVAL=0
start(){
    if [ ! -e $lease_file  ]; then
        echo " Creating $lease_file"
        touch $lease_file
    #elif [ -f $pid_file ]; then
        #PID=`cat $pidfile`
        #echo " ISC-DHCPD already running: $PID"
        #exit 2;
    else
      echo -n $"Starting ISC-DHCPD: "
        /usr/local/sbin/dhcpd eth0 -4 -q -cf /etc/dhcpd.conf -lf /usr/local/zddi/dhcp/db/dhcpd.leases
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dhcpd
    return $RETVAL
    fi
}

stop() {
    echo -n $"Stopping ISC-DHCPD: "
    killall dhcpd
    RETVAL=$?
    echo
[ $RETVAL -eq 0 ] && rm -f /var/run/dhcpd.pid /var/lock/subsys/dhcpd
    return $RETVAL
}

restart() {
    stop
    start
}

reload() {
    echo -n $"Reloading dhcpd: "
    killproc dhcpd -USR2
    RETVAL=$?
    echo
    return $RETVAL
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status dhcpd
    ;;
  restart)
    restart
    ;;
  condrestart)
    [ -f /var/lock/subsys/dhcpd ] && restart || :
    ;;
  reload)
    reload
    ;;
  *)
  echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
  exit 1
esac

exit $?
#==============dhcpd content==========
service dhcpd start后效果如下
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值