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