Linux 注册自定tftpd服务(改进)

来源:互联网 发布:淘宝店铺转让 淘铺王 编辑:程序博客网 时间:2024/05/29 16:31
    增加了udp端口69的占用判定;

#!/bin/bash#description:tftpd#chkconfig: 2345 20 81set -e  ##及时返回错误EXEC_PATH=/software/tftp-1.0/EXEC=tftpdDAEMON=/software/tftp-1.0/tftpd  PID_FILE=/var/run/tftpd.pid    #. /etc/rc.d/init.d/functions    if [ ! -x $EXEC_PATH/$EXEC ] ; then         echo "ERROR: $DAEMON not found"         exit 1  fi    stop()  {        echo "Stoping $EXEC ..."         ps aux | grep "$DAEMON" | kill -9 `awk '{print $2}'` >/dev/null 2>&1         rm -f $PID_FILE  #       usleep 100         echo "Shutting down $EXEC: [  OK  ]"   status} status(){PID=`ps aux | grep "$DAEMON" |grep -v grep | awk '{print $2}'`  # grep -v grep 是消除包含grep,即自身,最后一个进程。#echo $PIDif (("$PID")) ; then   #判断$PID为真,则tftpd启动echo "tftpd start/running, process $PID"else echo "tftpd stop/waiting"fi}   start()  {  PID=`ps aux | grep "$DAEMON" |grep -v grep | awk '{print $2}'`  # grep -v grep 是消除包含grep,即自身,最后一个进程。po=`netstat -aup | grep tftp | awk '{print $1}'`udp=udp#echo "po =$po"if (("$PID")) ; then   #判断$PID为真,则tftpd启动echo "tftpd is already  running: process id = $PID"elif [ "$po" = "$udp" ] ; then #字符串比较 等号前后 空格#echo $udp       echo -e "\033[31m Starting tftpd: [  faild  ]\033[0m" echo "udp 69 port  already be used."          else       echo "Starting $EXEC ..."  #PORT=`netstat -an | grep 0.0.0.0:69`#if [ ! -n "$PORT" ] ; then   #echo "端口被占用"       $DAEMON  > /dev/null &         pidof $EXEC > $PID_FILE   #      usleep 100         echo "Starting $EXEC: [  OK  ]" #else#echo "端口69被占用"      # $DAEMON > /dev/null &        # pidof $EXEC > $PID_FILE   #      usleep 100         #echo "Starting $EXEC: [  OK  ]"#fistatusfi          }    restart()  {      stop      start  }    case "$1" in      start)          start          ;;      stop)          stop          ;;      restart)          restart          ;;      status)      #    status -p $PID_FILE $DAEMON       status;;      *)          echo "Usage: service $EXEC {start|stop|restart|status}"          exit 1  esac    exit $?