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

    增加了udp端口69的占用判定;

#!/bin/bash

#description:tftpd
#chkconfig: 2345 20 81
set -e  ##及时返回错误
EXEC_PATH=/software/tftp-1.0/
EXEC=tftpd
DAEMON=/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 $PID
	if (("$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  ]"
#	fi
	status
	fi          
}  
  
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 $?  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值