File: init

package info (click to toggle)
wu-ftpd 2.6.2-32
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 2,700 kB
  • ctags: 1,362
  • sloc: ansic: 18,125; sh: 3,535; yacc: 1,742; perl: 649; makefile: 228
file content (150 lines) | stat: -rw-r--r-- 3,422 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#!/bin/sh
#
# /etc/init.d/wu-ftpd  --  start/stop the wu-ftpd FTP daemon.
# 
### BEGIN INIT INFO
# Provides:          wu-ftpd
# Required-Start:    $syslog $network $remote_fs
# Required-Stop:     $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts and stops the wu-ftpd FTP daemon
### END INIT INFO

PATH=/bin:/usr/bin:/sbin:/usr/sbin

NAME=wu-ftpd
DAEMON=/usr/sbin/wu-ftpd
PIDFILE=/var/run/wu-ftpd.pid
DESC="FTP server"

unset LANG
trap "" 1 15
test -x $DAEMON || exit 0

RUN_DAEMON=yes
WU_OPTIONS="-l"
if [ -f /etc/default/$NAME ]; then
    . /etc/default/$NAME
fi

DAEMON_ARGS="-S $WU_OPTIONS"

run_wu="1"

if [ "x$RUN_DAEMON" = "xno" ]; then
    run_wu=0
fi

# check that the FTP service isn't already enabled in inetd
if [ -f /etc/inetd.conf ] && egrep '^ftp[[:space:]][[:space:]]*' /etc/inetd.conf >/dev/null; then
    run_wu=0
fi

for FILE in /etc/xinetd.d/*netd.d; do
    if [ -f $FILE ] && egrep 'server[[:space:]]*=.*ftpd' $FILE > /dev/null; then
        run_wu=0                                                              
    fi
done

is_running() 
{
	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
		|| return 0

	return 1
}

#
# Function that starts the daemon/service
#
do_start()
{
	# Return
	#   0 if daemon has been started
	#   1 if daemon was already running
	#   2 if daemon could not be started
	is_running && return 1
	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
		$DAEMON_ARGS \
		|| return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
	# Return
	#   0 if daemon has been stopped
	#   1 if daemon was already stopped
	#   2 if daemon could not be stopped
	#   other if a failure occurred
	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
	RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2
	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
	[ "$?" = 2 ] && return 2

	return "$RETVAL"
}

. /lib/lsb/init-functions

case "$1" in
    start)
        if [ "$run_wu" = "1" ]; then
					[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
					do_start
					case "$?" in
						0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
						2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
					esac
        fi
        ;;
    stop)
        if [ -f /var/run/wu-ftpd.pid ] && kill -0 `cat /var/run/wu-ftpd.pid` 2>/dev/null; then
					[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
					do_stop
					case "$?" in
						0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
						2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
					esac
        fi
        ;;
    restart|force-reload)
        if [ "$run_wu" = "1" ]; then
					log_daemon_msg "Restarting $DESC" "$NAME"
					do_stop
					case "$?" in
						0|1)
						do_start
						case "$?" in
							0) log_end_msg 0 ;;
							1) log_end_msg 1 ;; # Old process is still running
							*) log_end_msg 1 ;; # Failed to start
						esac
						;;
						*)
							# Failed to stop
						log_end_msg 1
						;;
					esac
        fi
        ;;
		status)
			if is_running; then
				log_success_msg "wu-ftpd FTP server is running."
				exit 0
			else
				log_failure_msg "wu-ftpd FTP server is not running."
				exit 1
			fi
			;;				
    *)
        echo "Usage: /etc/init.d/wu-ftpd {start|stop|restart|force-reload|status}"
        exit 1
        ;;
esac

exit 0