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