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