2012. 7. 12. 17:26

#!/bin/bash
#
# vsftpd      This shell script takes care of starting and stopping
#             standalone vsftpd.
#
# chkconfig: - 60 50
# description: Vsftpd is a ftp daemon, which is the program \
#              that answers incoming ftp service requests.
# processname: vsftpd
# config: /etc/vsftpd/vsftpd.conf

# Source function library.
. /etc/rc.d/init.d/functions #include

# Source networking configuration.
. /etc/sysconfig/network #include

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -x /usr/sbin/vsftpd ] || exit 0

RETVAL=0
prog="vsftpd"

start() {
        # Start daemons.

        if [ -d /etc/vsftpd ] ; then
                declare -a sites
                sites=(`ls /etc/vsftpd/*.conf`)
                site_count=${#sites[@]} #전체배열값의 갯수를 의미 {$sites[@]} 는 전체 배열을 의미 { } 와 같이 중괄호로 묵어야 제대로 출력
                index=0

                while [ "${index}" -lt "${site_count}" ] ; do
                        site=`basename ${sites[${index}]} .conf`
                        echo -n $"Starting $prog for $site: "
                                ( /usr/sbin/vsftpd ${sites[${index}]} &)
                                daemon true
                                RETVAL=$?
                        echo
                        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
                        let "index = index + 1"
                done
        else
                RETVAL=1
        fi
        return $RETVAL
}

stop() {
        # Stop daemons.
        echo -n $"Shutting down $prog: "
        killproc $prog
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
        return $RETVAL
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        RETVAL=$?
        ;;
  condrestart)
        if [ -f /var/lock/subsys/$prog ]; then
            stop
            start
            RETVAL=$?
        fi
        ;;
  status)
        status $prog
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|condrestart|status}"
        exit 1
esac

exit $RETVAL

Posted by 몰라욧