dhcpd開源工程(三) dhcpd啟動指令碼
阿新 • • 發佈:2019-01-22
指令碼設計:指令碼中必須包含個函式,start(),stop(),restart(),reload(),例如,鍵入service dhcpd start命令,會呼叫start函式,restart()和reload()很簡單,stop函式中kill程序,並殺出pid檔案,這裡主要寫start函式的設計思路,先檢查是否有配置檔案,若沒有的話,直接退出並列印資訊;檢查指定路徑是否有租約檔案,若沒有,建立;檢查是否有pid檔案,若有的話,說明dhcpd服務已經啟動,退出並列印資訊;呼叫dhcpd啟動檔案,-4表示是dhcpv4,-q表示自動發現介面,-cf指定conf檔案路徑,-lf指定租約檔案路徑內容如下
service dhcpd start後效果如下#=============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==========