]> git.pld-linux.org Git - packages/pure-ftpd.git/blob - pure-ftpd.init
b3e2f5f03f83c4ab187c4309d0f68865770e5f37
[packages/pure-ftpd.git] / pure-ftpd.init
1 #!/bin/sh
2 #
3 # pureftpd      PureFTPD server
4 #
5 # chkconfig:    345 85 15
6 # description:  PureFTPD is fast, production-quality, standard-conformant FTP server
7 #
8
9 # Source function library
10 . /etc/rc.d/init.d/functions
11
12 # Get network config
13 . /etc/sysconfig/network
14
15 PURE_FTPD_CONF=/etc/ftpd/pureftpd.conf
16 [ -f /etc/pure-ftpd/conf/pureftpd.conf ] && PURE_FTPD_CONF=/etc/pure-ftpd/conf/pureftpd.conf
17
18 PURE_AUTH_SCRIPT=/etc/pure-ftpd/authd/auth.script
19 PURE_AUTH_SOCKET=/var/run/pure-authd/socket
20 PURE_CERT_SCRIPT=/etc/pure-ftpd/certd/cert.script
21 PURE_CERT_SOCKET=/var/run/pure-certd/socket
22
23 # Get service config
24 [ -f /etc/sysconfig/pure-ftpd ] && . /etc/sysconfig/pure-ftpd
25
26 # Check that networking is up.
27 if is_yes "${NETWORKING}"; then
28         if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
29                 msg_network_down pure-ftpd
30                 exit 1
31         fi
32 else
33         exit 0
34 fi
35
36 start() {
37         # Check if the service is already running?
38         if [ ! -f /var/lock/subsys/pure-ftpd ]; then
39                 RETVAL=0
40                 if [ -x "$PURE_AUTH_SCRIPT" ]; then
41                         PURE_AUTH=yes
42                         msg_starting pure-authd
43
44                         # 326/326 - authd/authd
45
46                         mkdir -p /var/run/pure-authd
47                         chown ftpauth:root /var/run/pure-authd
48                         chmod 770 /var/run/pure-authd
49
50                         daemon /usr/sbin/pure-authd --uid 326 --gid 326 --pid /var/run/pure-authd.pid \
51                                 --run "$PURE_AUTH_SCRIPT" --socket "$PURE_AUTH_SOCKET" --daemonize
52                         RETVAL=$?
53                 fi
54                 if [ $RETVAL -eq 0 -a -x "$PURE_CERT_SCRIPT" ]; then
55                         PURE_CERT=yes
56                         msg_starting pure-certd
57
58                         # 335/335 - certd/certd
59
60                         mkdir -p /var/run/pure-certd
61                         chown ftpcert:root /var/run/pure-certd
62                         chmod 750 /var/run/pure-certd
63
64                         daemon /usr/sbin/pure-certd --uid 335 --gid 335 --pid /var/run/pure-certd.pid \
65                                 --run "$PURE_CERT_SCRIPT" --socket "$PURE_CERT_SOCKET" --daemonize
66                         RETVAL=$?
67                 fi
68                 if [ $RETVAL -eq 0 ]; then
69                         msg_starting pure-ftpd
70                         rm -f /var/run/pure-ftpd/client*
71                         modprobe -s capability > /dev/null 2>&1
72                         daemon /usr/sbin/pure-ftpd ${PURE_FTPD_CONF} \
73                                 $([ "$PURE_AUTH" = "yes" ] && echo "-lextauth:$PURE_AUTH_SOCKET") \
74                                 $([ "$PURE_CERT" = "yes" ] && echo "--extcert=$PURE_CERT_SOCKET") \
75                                 --daemonize
76                         RETVAL=$?
77
78                         if [ -n "$UPLOADSCRIPT" ]; then
79                                 msg_starting pure-uploadscript
80                                 UPLOADSCRIPTOPTS="-B -r $UPLOADSCRIPT"
81                                 [ -n "$UPLOADSCRIPT_UID" ] && UPLOADSCRIPTOPTS="$UPLOADSCRIPTOPTS -u $UPLOADSCRIPT_UID"
82                                 [ -n "$UPLOADSCRIPT_GID" ] && UPLOADSCRIPTOPTS="$UPLOADSCRIPTOPTS -g $UPLOADSCRIPT_GID"
83                                 daemon /usr/sbin/pure-uploadscript $UPLOADSCRIPTOPTS
84                                 RETVAL=$(($RETVAL+$?))
85                         fi
86                 else
87                         msg_starting pure-ftpd
88                         deltext
89                         fail
90                 fi
91
92                 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/pure-ftpd
93         else
94                 msg_already_running pure-ftpd
95         fi
96 }
97
98 stop() {
99         # Stop daemons.
100         if [ -f /var/lock/subsys/pure-ftpd ]; then
101                 if [ -n "$UPLOADSCRIPT" ]; then
102                     msg_stopping pure-uploadscript
103                     killproc pure-uploadscript
104                 fi
105
106                 if [ -x "$PURE_AUTH_SCRIPT" -o -r /var/run/pure-authd.pid ]; then
107                         msg_stopping pure-authd
108                         killproc pure-authd
109                 fi
110
111                 if [ -x "$PURE_CERT_SCRIPT" -o -r /var/run/pure-certd.pid ]; then
112                         msg_stopping pure-certd
113                         killproc pure-certd
114                 fi
115
116                 msg_stopping pure-ftpd
117                 killproc pure-ftpd
118                 
119                 rm -f /var/lock/subsys/pure-ftpd > /dev/null 2>&1
120         else
121                 msg_not_running pure-ftpd
122         fi
123 }
124
125 RETVAL=0
126 # See how we were called.
127 case "$1" in
128   start)
129         start
130         ;;
131   stop)
132         stop
133         ;;
134   status)
135         status pure-ftpd
136         status pure-uploadscript
137         RETVAL=$?
138         if [ $RETVAL -eq 0 ]; then
139                 pure-ftpwho
140         fi
141         ;;
142   restart|force-reload)
143         stop
144         start
145         ;;
146   *)
147         msg_usage "$0 {start|stop|restart|force-reload|status}"
148         exit 3
149         ;;
150 esac
151
152 exit $RETVAL
This page took 0.073033 seconds and 2 git commands to generate.