summaryrefslogtreecommitdiffstats
path: root/generic/etc/init.d/pureftpd
blob: 4d23aec2ceef2aa488f562cd712ef2fa941a3694 (plain)
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
#!/bin/sh
#
# /etc/init.d/pure-ftpd
#

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

# defaults
DAEMON="pure-ftpd"
NAME="pure-ftpd"
PREFIX="pure-ftpd: "
DAEMON_OPTIONS="-B @DAEMON_ARGS@"
DAEMON_PIDFILE=/var/run/pure-ftpd.pid

HELPER="pure-uploadscript"
HELPER_START_SCRIPT="@HELPER_SCRIPT@"
HELPER_OPTIONS="-B @HELPER_ARGS@"

trap "" 1
trap "" 15

which $DAEMON || { echo "${PREFIX}$DAEMON not found"; exit; }


if [ ! -z $HELPER_START_SCRIPT ] ; then
	DAEMON_OPTIONS="$DAEMON_OPTIONS -o"
fi

start_helper(){
	if [ ! -z $HELPER_START_SCRIPT ]; then
		which $HELPER || { echo "${PREFIX}$HELPER not found"; exit; }
		echo "${PREFIX}starting upload helper daemon..."
		$HELPER $HELPER_OPTIONS -r $HELPER_START_SCRIPT
	else
		echo "${PREFIX}no upload script defined, skipping"
	fi
}

stop_helper(){
	killall -9 "$HELPER"
}

start_daemon(){
	which $DAEMON
	$DAEMON -g $DAEMON_PIDFILE $DAEMON_OPTIONS
}

stop_daemon(){
	if [ -e "$DAEMON_PIDFILE" ]; then
		kill `cat $DAEMON_PIDFILE`
		case $? in
			0)
			echo "${PREFIX}$NAME stopped"
			;;
			*)
			kill -9 `cat $DAEMON_PIDFILE`
			echo "${PREFIX}failed to stop $NAME - process killed"
			;;
		esac
		rm -f $DAEMON_PIDFILE
		echo "${PREFIX}pidfile removed"
	else
		echo "${PREFIX}pid file not found - process not running"
	fi
}

start(){
	start_daemon
	start_helper
}

stop(){
	stop_daemon
	stop_helper
}

case "$1" in
    start)
	    echo -n "${PREFIX}starting $NAME: "
	    start
	    echo "done"
	;;

    stop)
	    echo -n "${PREFIX}stopping $NAME: "
	    stop
	    echo "done"
	;;

    reload)
	echo -n "${PREFIX}reloading $NAME configuration..."
	if [ -e "$DAEMON_PIDFILE" ]; then
	   kill -HUP `cat $DAEMON_PIDFILE`
	   echo " done."
	else
	   echo "pid file not found - process not running"
	fi
	;;

    force-reload|restart)
	    echo -n "${PREFIX}restarting $NAME."
	    stop
	    echo -n "."
	    sleep 2
	    echo -n "."
	    start
	    echo " done."
	;;

    *)
	echo "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload|help}"
	exit 1
	;;
esac

exit 0