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