#! /bin/sh
#
# Author: oyaji <oyaji@acorn.zive.net>
#
# /etc/init.d/proftpd
#
### BEGIN INIT INFO
# Provides: proftpd
# Required-Start: $network $named $syslog
# Required-Stop: $network $named $syslog
# X-UnitedLinux-Should-Start:
# X-UnitedLinux-Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start ProFTPD
### END INIT INFO
# Return values acc. to LSB for all commands but
# status (see below):
#
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
PROFTPD_BIN="/usr/sbin/proftpd"
PROFTPD_CFG="/etc/proftpd.conf"
PROFTPD_PID="/var/run/proftpd.pid"
[ -r $PROFTPD_CFG ] || exit 6
[ -x $PROFTPD_BIN ] || exit 5
if [ -f /etc/sysconfig/proftpd ]; then
. /etc/sysconfig/proftpd
fi
# Source status functions
. /etc/rc.status
# First reset status of this service
rc_reset
# See how we were called.
case "$1" in
start)
echo -n "Starting ProFTPD Server: "
startproc $PROFTPD_BIN $OPTIONS
touch /var/lock/subsys/proftpd
rc_status -v
;;
stop)
echo -n "Shutting down ProFTPD Server: "
killproc $PROFTPD_BIN
rm -f /var/lock/subsys/proftpd
rc_status -v
;;
status)
# Status has a slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running
echo -n "Checking for ProFTPD Server: "
checkproc -p $PROFTPD_PID $PROFTPD_BIN
rc_status -v
;;
restart)
$0 stop
$0 start
rc_status
;;
reread)
echo -n "Re-reading ProFTPD Server config: "
killproc $PROFTPD_BIN -HUP
rc_status -v
;;
suspend)
hash ftpshut >/dev/null 2>&1
if [ $? = 0 ]; then
if [ $# -gt 1 ]; then
shift
echo -n "Suspending with '$*' "
ftpshut $*
else
echo -n "Suspending NOW "
ftpshut now "Maintanance in progress"
fi
else
echo -n "No way to suspend "
fi
echo
;;
resume)
if [ -f /etc/shutmsg ]; then
echo -n "Allowing sessions again "
rm -f /etc/shutmsg
else
echo -n "Was not suspended "
fi
echo
;;
*)
echo -n "Usage: $0 {start|stop|restart|status|reread|resume"
hash ftpshut
if [ $? = 1 ]; then
echo '}'
else
echo '|suspend}'
echo 'suspend accepts additional arguments which are passed to ftpshut(8)'
fi
exit 1
esac
rc_exit
if [ $# -gt 1 ]; then
shift
$0 $*
fi
exit 0