xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-networking/recipes-daemons/lldpd/files/lldpd.init.d (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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*4882a593Smuzhiyun log_daemon_msg() {
17*4882a593Smuzhiyun     echo $*
18*4882a593Smuzhiyun }
19*4882a593Smuzhiyun 
log_end_msg()20*4882a593Smuzhiyun log_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*4882a593Smuzhiyun log_failure_msg() {
29*4882a593Smuzhiyun     echo $*
30*4882a593Smuzhiyun }
31*4882a593Smuzhiyun 
log_success_msg()32*4882a593Smuzhiyun log_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