3 # pureftpd PureFTPD server
6 # description: PureFTPD is fast, production-quality, standard-conformant FTP server
9 # Source function library
10 . /etc/rc.d/init.d/functions
13 . /etc/sysconfig/network
15 PURE_AUTH_SCRIPT=/etc/ftpd/auth.script
16 PURE_AUTH_SOCKET=/var/run/pure-authd/socket
19 [ -f /etc/sysconfig/pure-ftpd ] && . /etc/sysconfig/pure-ftpd
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
29 echo 'Error: pure-config{,.pl,.py} not found. Giving up.'
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
44 # Check if the service is already running?
45 if [ ! -f /var/lock/subsys/pure-ftpd ]; then
47 if [ -x "$PURE_AUTH_SCRIPT" ]; then
49 msg_starting pure-authd
51 # 326/326 - authd/authd
53 mkdir -p /var/run/pure-authd
54 chown ftpauth:root /var/run/pure-authd
55 chmod 750 /var/run/pure-authd
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
60 [ $RETVAL -eq 0 ] && chown root:root "$PURE_AUTH_SOCKET" && chmod 700 "$PURE_AUTH_SOCKET"
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") \
73 daemon $CFG /etc/ftpd/pureftpd.conf \
74 $([ "$PURE_AUTH" = "yes" ] && echo "-lextauth:$PURE_AUTH_SOCKET") \
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+$?))
89 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/pure-ftpd
91 msg_already_running pure-ftpd
97 if [ -f /var/lock/subsys/pure-ftpd ]; then
98 if [ -n "$UPLOADSCRIPT" ]; then
99 msg_stopping pure-uploadscript
100 killproc pure-uploadscript
103 if [ -x "$PURE_AUTH_SCRIPT" -o -r /var/run/pure-authd.pid ]; then
104 msg_stopping pure-authd
108 msg_stopping pure-ftpd
111 rm -f /var/lock/subsys/pure-ftpd > /dev/null 2>&1
113 msg_not_running pure-ftpd
118 # See how we were called.
128 status pure-uploadscript
130 if [ $RETVAL -eq 0 ]; then
134 restart|force-reload)
139 msg_usage "$0 {start|stop|restart|force-reload|status}"