1*4882a593Smuzhiyun #! /bin/sh 2*4882a593Smuzhiyun ### BEGIN INIT INFO 3*4882a593Smuzhiyun # Provides: lldpd 4*4882a593Smuzhiyun # Required-Start: $remote_fs $network $syslog 5*4882a593Smuzhiyun # Required-Stop: $network $remote_fs $syslog 6*4882a593Smuzhiyun # Default-Start: 2 3 4 5 7*4882a593Smuzhiyun # Default-Stop: 0 1 6 8*4882a593Smuzhiyun # Short-Description: LLDP daemon 9*4882a593Smuzhiyun # Description: lldpd is a 802.1AB implementation, a L2 network 10*4882a593Smuzhiyun # discovery protocol. It also supports CDP, EDP and 11*4882a593Smuzhiyun # various other protocols. 12*4882a593Smuzhiyun ### END INIT INFO 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun # Do NOT "set -e" 15*4882a593Smuzhiyun log_daemon_msg()16*4882a593Smuzhiyunlog_daemon_msg() { 17*4882a593Smuzhiyun echo $* 18*4882a593Smuzhiyun } 19*4882a593Smuzhiyun log_end_msg()20*4882a593Smuzhiyunlog_end_msg() { 21*4882a593Smuzhiyun if [ $1 -eq 0 ]; then 22*4882a593Smuzhiyun success $* 23*4882a593Smuzhiyun else 24*4882a593Smuzhiyun failure $* 25*4882a593Smuzhiyun fi 26*4882a593Smuzhiyun } 27*4882a593Smuzhiyun log_failure_msg()28*4882a593Smuzhiyunlog_failure_msg() { 29*4882a593Smuzhiyun echo $* 30*4882a593Smuzhiyun } 31*4882a593Smuzhiyun log_success_msg()32*4882a593Smuzhiyunlog_success_msg() { 33*4882a593Smuzhiyun echo $* 34*4882a593Smuzhiyun } 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun # PATH should only include /usr/* if it runs after the mountnfs.sh script 38*4882a593Smuzhiyun PATH=/sbin:/usr/sbin:/bin:/usr/bin 39*4882a593Smuzhiyun DESC="LLDP daemon" 40*4882a593Smuzhiyun NAME=lldpd 41*4882a593Smuzhiyun DAEMON=/usr/sbin/$NAME 42*4882a593Smuzhiyun DAEMON_ARGS="" 43*4882a593Smuzhiyun PIDFILE=/var/run/$NAME.pid 44*4882a593Smuzhiyun SCRIPTNAME=/etc/init.d/$NAME 45*4882a593Smuzhiyun CHROOT=/var/run/$NAME 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun # Exit if the package is not installed 48*4882a593Smuzhiyun [ -x "$DAEMON" ] || exit 0 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun # Read configuration variable file if it is present 51*4882a593Smuzhiyun [ -r /etc/default/$NAME ] && . /etc/default/$NAME 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun # LSB log_* functions 54*4882a593Smuzhiyun . /etc/init.d/functions 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun do_start() 57*4882a593Smuzhiyun { 58*4882a593Smuzhiyun start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ 59*4882a593Smuzhiyun $DAEMON_ARGS \ 60*4882a593Smuzhiyun || return 2 61*4882a593Smuzhiyun } 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun do_stop() 64*4882a593Smuzhiyun { 65*4882a593Smuzhiyun start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME 66*4882a593Smuzhiyun RETVAL="$?" 67*4882a593Smuzhiyun [ "$RETVAL" = 2 ] && return 2 68*4882a593Smuzhiyun start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON 69*4882a593Smuzhiyun [ "$?" = 2 ] && return 2 70*4882a593Smuzhiyun rm -f $PIDFILE 71*4882a593Smuzhiyun return "$RETVAL" 72*4882a593Smuzhiyun } 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun do_reload() { 75*4882a593Smuzhiyun start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME 76*4882a593Smuzhiyun return 0 77*4882a593Smuzhiyun } 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun case "$1" in 80*4882a593Smuzhiyun start) 81*4882a593Smuzhiyun [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" 82*4882a593Smuzhiyun do_start 83*4882a593Smuzhiyun case "$?" in 84*4882a593Smuzhiyun 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 85*4882a593Smuzhiyun 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 86*4882a593Smuzhiyun esac 87*4882a593Smuzhiyun ;; 88*4882a593Smuzhiyun stop) 89*4882a593Smuzhiyun [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" 90*4882a593Smuzhiyun do_stop 91*4882a593Smuzhiyun case "$?" in 92*4882a593Smuzhiyun 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 93*4882a593Smuzhiyun 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 94*4882a593Smuzhiyun esac 95*4882a593Smuzhiyun ;; 96*4882a593Smuzhiyun reload) 97*4882a593Smuzhiyun log_daemon_msg "Reloading $DESC" "$NAME" 98*4882a593Smuzhiyun do_reload 99*4882a593Smuzhiyun log_end_msg $? 100*4882a593Smuzhiyun ;; 101*4882a593Smuzhiyun restart|force-reload) 102*4882a593Smuzhiyun log_daemon_msg "Restarting $DESC" "$NAME" 103*4882a593Smuzhiyun do_stop 104*4882a593Smuzhiyun case "$?" in 105*4882a593Smuzhiyun 0|1) 106*4882a593Smuzhiyun do_start 107*4882a593Smuzhiyun case "$?" in 108*4882a593Smuzhiyun 0) log_end_msg 0 ;; 109*4882a593Smuzhiyun 1) log_end_msg 1 ;; # Old process is still running 110*4882a593Smuzhiyun *) log_end_msg 1 ;; # Failed to start 111*4882a593Smuzhiyun esac 112*4882a593Smuzhiyun ;; 113*4882a593Smuzhiyun *) 114*4882a593Smuzhiyun # Failed to stop 115*4882a593Smuzhiyun log_end_msg 1 116*4882a593Smuzhiyun ;; 117*4882a593Smuzhiyun esac 118*4882a593Smuzhiyun ;; 119*4882a593Smuzhiyun status) 120*4882a593Smuzhiyun status_of_proc $DAEMON $NAME -p $PIDFILE && exit 0 || exit $? 121*4882a593Smuzhiyun ;; 122*4882a593Smuzhiyun *) 123*4882a593Smuzhiyun echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2 124*4882a593Smuzhiyun exit 3 125*4882a593Smuzhiyun ;; 126*4882a593Smuzhiyun esac 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun : 129