]> git.pld-linux.org Git - packages/pure-ftpd.git/blob - pure-ftpd.init
d032e8a13988c64aa656118042c65ddfd8d9ecc7
[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 750 /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                         [ $RETVAL -eq 0 ] && chown root:root "$PURE_AUTH_SOCKET" && chmod 600 "$PURE_AUTH_SOCKET"
54                 fi
55                 if [ $RETVAL -eq 0 -a -x "$PURE_CERT_SCRIPT" ]; then
56                         PURE_CERT=yes
57                         msg_starting pure-certd
58
59                         # 335/335 - certd/certd
60
61                         mkdir -p /var/run/pure-certd
62                         chown ftpcert:root /var/run/pure-certd
63                         chmod 750 /var/run/pure-certd
64
65                         daemon /usr/sbin/pure-certd --uid 335 --gid 335 --pid /var/run/pure-certd.pid \
66                                 --run "$PURE_CERT_SCRIPT" --socket "$PURE_CERT_SOCKET" --daemonize
67                         RETVAL=$?
68                         [ $RETVAL -eq 0 ] && chown root:root "$PURE_CERT_SOCKET" && chmod 600 "$PURE_CERT_SOCKET"
69                 fi
70                 if [ $RETVAL -eq 0 ]; then
71                         msg_starting pure-ftpd
72                         rm -f /var/run/pure-ftpd/client*
73                         modprobe -s capability > /dev/null 2>&1
74                         daemon /usr/sbin/pure-ftpd ${PURE_FTPD_CONF} \
75                                 $([ "$PURE_AUTH" = "yes" ] && echo "-lextauth:$PURE_AUTH_SOCKET") \
76                                 $([ "$PURE_CERT" = "yes" ] && echo "--extcert=$PURE_CERT_SOCKET") \
77                                 --daemonize
78                         RETVAL=$?
79
80                         if [ -n "$UPLOADSCRIPT" ]; then
81                                 msg_starting pure-uploadscript
82                                 UPLOADSCRIPTOPTS="-B -r $UPLOADSCRIPT"
83                                 [ -n "$UPLOADSCRIPT_UID" ] && UPLOADSCRIPTOPTS="$UPLOADSCRIPTOPTS -u $UPLOADSCRIPT_UID"
84                                 [ -n "$UPLOADSCRIPT_GID" ] && UPLOADSCRIPTOPTS="$UPLOADSCRIPTOPTS -g $UPLOADSCRIPT_GID"
85                                 daemon /usr/sbin/pure-uploadscript $UPLOADSCRIPTOPTS
86                                 RETVAL=$(($RETVAL+$?))
87                         fi
88                 else
89                         msg_starting pure-ftpd
90                         deltext
91                         fail
92                 fi
93
94                 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/pure-ftpd
95         else
96                 msg_already_running pure-ftpd
97         fi
98 }
99
100 stop() {
101         # Stop daemons.
102         if [ -f /var/lock/subsys/pure-ftpd ]; then
103                 if [ -n "$UPLOADSCRIPT" ]; then
104                     msg_stopping pure-uploadscript
105                     killproc pure-uploadscript
106                 fi
107
108                 if [ -x "$PURE_AUTH_SCRIPT" -o -r /var/run/pure-authd.pid ]; then
109                         msg_stopping pure-authd
110                         killproc pure-authd
111                 fi
112
113                 if [ -x "$PURE_CERT_SCRIPT" -o -r /var/run/pure-certd.pid ]; then
114                         msg_stopping pure-certd
115                         killproc pure-certd
116                 fi
117
118                 msg_stopping pure-ftpd
119                 killproc pure-ftpd
120                 
121                 rm -f /var/lock/subsys/pure-ftpd > /dev/null 2>&1
122         else
123                 msg_not_running pure-ftpd
124         fi
125 }
126
127 RETVAL=0
128 # See how we were called.
129 case "$1" in
130   start)
131         start
132         ;;
133   stop)
134         stop
135         ;;
136   status)
137         status pure-ftpd
138         status pure-uploadscript
139         RETVAL=$?
140         if [ $RETVAL -eq 0 ]; then
141                 pure-ftpwho
142         fi
143         ;;
144   restart|force-reload)
145         stop
146         start
147         ;;
148   *)
149         msg_usage "$0 {start|stop|restart|force-reload|status}"
150         exit 3
151         ;;
152 esac
153
154 exit $RETVAL
This page took 0.148473 seconds and 2 git commands to generate.