#!/bin/sh # # pureftpd PureFTPD server # # chkconfig: 345 85 15 # description: PureFTPD is fast, production-quality, standard-conformant FTP server # # Source function library . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network PURE_FTPD_CONF=/etc/ftpd/pureftpd.conf [ -f /etc/pure-ftpd/conf/pureftpd.conf ] && PURE_FTPD_CONF=/etc/pure-ftpd/conf/pureftpd.conf PURE_AUTH_SCRIPT=/etc/pure-ftpd/authd/auth.script PURE_AUTH_SOCKET=/var/run/pure-authd/socket PURE_CERT_SCRIPT=/etc/pure-ftpd/certd/cert.script PURE_CERT_SOCKET=/var/run/pure-certd/socket # Get service config [ -f /etc/sysconfig/pure-ftpd ] && . /etc/sysconfig/pure-ftpd # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then msg_network_down pure-ftpd exit 1 fi else exit 0 fi start() { # Check if the service is already running? if [ ! -f /var/lock/subsys/pure-ftpd ]; then RETVAL=0 if [ -x "$PURE_AUTH_SCRIPT" ]; then PURE_AUTH=yes msg_starting pure-authd # 326/326 - authd/authd mkdir -p /var/run/pure-authd chown ftpauth:root /var/run/pure-authd chmod 770 /var/run/pure-authd daemon /usr/sbin/pure-authd --uid 326 --gid 326 --pid /var/run/pure-authd.pid \ --run "$PURE_AUTH_SCRIPT" --socket "$PURE_AUTH_SOCKET" --daemonize RETVAL=$? fi if [ $RETVAL -eq 0 -a -x "$PURE_CERT_SCRIPT" ]; then PURE_CERT=yes msg_starting pure-certd # 335/335 - certd/certd mkdir -p /var/run/pure-certd chown ftpcert:root /var/run/pure-certd chmod 770 /var/run/pure-certd daemon /usr/sbin/pure-certd --uid 335 --gid 335 --pid /var/run/pure-certd.pid \ --run "$PURE_CERT_SCRIPT" --socket "$PURE_CERT_SOCKET" --daemonize RETVAL=$? fi if [ $RETVAL -eq 0 ]; then msg_starting pure-ftpd rm -f /var/run/pure-ftpd/client* modprobe -s capability > /dev/null 2>&1 daemon /usr/sbin/pure-ftpd ${PURE_FTPD_CONF} \ $([ "$PURE_AUTH" = "yes" ] && echo "-lextauth:$PURE_AUTH_SOCKET") \ $([ "$PURE_CERT" = "yes" ] && echo "--extcert=$PURE_CERT_SOCKET") \ --daemonize RETVAL=$? if [ -n "$UPLOADSCRIPT" ]; then msg_starting pure-uploadscript UPLOADSCRIPTOPTS="-B -r $UPLOADSCRIPT" [ -n "$UPLOADSCRIPT_UID" ] && UPLOADSCRIPTOPTS="$UPLOADSCRIPTOPTS -u $UPLOADSCRIPT_UID" [ -n "$UPLOADSCRIPT_GID" ] && UPLOADSCRIPTOPTS="$UPLOADSCRIPTOPTS -g $UPLOADSCRIPT_GID" daemon /usr/sbin/pure-uploadscript $UPLOADSCRIPTOPTS RETVAL=$(($RETVAL+$?)) fi else msg_starting pure-ftpd deltext fail fi [ $RETVAL -eq 0 ] && touch /var/lock/subsys/pure-ftpd else msg_already_running pure-ftpd fi } stop() { # Stop daemons. if [ -f /var/lock/subsys/pure-ftpd ]; then if [ -n "$UPLOADSCRIPT" ]; then msg_stopping pure-uploadscript killproc pure-uploadscript fi if [ -x "$PURE_AUTH_SCRIPT" -o -r /var/run/pure-authd.pid ]; then msg_stopping pure-authd killproc pure-authd fi if [ -x "$PURE_CERT_SCRIPT" -o -r /var/run/pure-certd.pid ]; then msg_stopping pure-certd killproc pure-certd fi msg_stopping pure-ftpd killproc pure-ftpd rm -f /var/lock/subsys/pure-ftpd > /dev/null 2>&1 else msg_not_running pure-ftpd fi } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status pure-ftpd RETVAL=$? PUREFTPDRETVAL=$RETVAL status pure-uploadscript if [ -n "$UPLOADSCRIPT" ]; then RETVAL=$? fi if [ $PUREFTPDRETVAL -eq 0 ]; then pure-ftpwho fi ;; restart|force-reload) stop start ;; *) msg_usage "$0 {start|stop|restart|force-reload|status}" exit 3 ;; esac exit $RETVAL