X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=pure-ftpd.init;h=b3e2f5f03f83c4ab187c4309d0f68865770e5f37;hb=b530604;hp=a347e151bceb7a47abca1944840b0915ec65c1c7;hpb=469b44067df501ec8920b8622cc0ef938a21053e;p=packages%2Fpure-ftpd.git diff --git a/pure-ftpd.init b/pure-ftpd.init index a347e15..b3e2f5f 100644 --- a/pure-ftpd.init +++ b/pure-ftpd.init @@ -12,67 +12,141 @@ # 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_no "${NETWORKING}"; then - # nls "ERROR: Networking is down. %s can't be run." - msg_Network_Down pure-ftpd - exit 1 +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 -if [ -f /etc/ftpd/pureftpd.conf ]; then - PUREFTPD_OPTS=$(grep -E -v "^\W*#" /etc/ftpd/pureftpd.conf | xargs) -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 -if [ -f /etc/ftpd/pureftpd-mysql.conf ]; then - PUREFTPD_OPTS="${PUREFTPD_OPTS} -l mysql:/etc/ftpd/pureftpd-mysql.conf" -fi + # 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 750 /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) - # Check if the service is already running? - if [ ! -f /var/lock/subsys/pure-ftpd ]; then - msg_starting pure-ftpd - rm -f /var/run/pure-ftpd/client* - daemon pure-ftpd $PUREFTPD_OPTS --daemonize - RETVAL=$? - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/pure-ftpd - else - msg_Already_Running pure-ftpd - exit 1 - fi + start ;; stop) - # Stop daemons. - if [ -f /var/lock/subsys/pure-ftpd ]; then - msg_stopping pure-ftpd - killproc pure-ftpd - rm -f /var/lock/subsys/pure-ftpd > /dev/null 2>&1 - else - msg_Not_Running pure-ftpd - exit 1 - fi + stop ;; status) status pure-ftpd + status pure-uploadscript RETVAL=$? if [ $RETVAL -eq 0 ]; then - pure-ftpwho + pure-ftpwho fi - exit $RETVAL ;; - restart|reload) - $0 stop - $0 start + restart|force-reload) + stop + start ;; *) - msg_Usage "$0 {start|stop|restart|status}" - exit 1 + msg_usage "$0 {start|stop|restart|force-reload|status}" + exit 3 ;; esac exit $RETVAL -