diff options
Diffstat (limited to 'abs/extra/community/vsftpd/vsftpd.d')
-rw-r--r-- | abs/extra/community/vsftpd/vsftpd.d | 93 |
1 files changed, 60 insertions, 33 deletions
diff --git a/abs/extra/community/vsftpd/vsftpd.d b/abs/extra/community/vsftpd/vsftpd.d index b43a6d0..2731085 100644 --- a/abs/extra/community/vsftpd/vsftpd.d +++ b/abs/extra/community/vsftpd/vsftpd.d @@ -1,40 +1,67 @@ #!/bin/bash +daemon_name=vsftpd + . /etc/rc.conf . /etc/rc.d/functions -PID=`pidof -o %PPID /usr/sbin/vsftpd` +get_pid() { + pidof -o %PPID $daemon_name +} + case "$1" in - start) - stat_busy "Starting vsftpd FTP Daemon" - if [ -z "$PID" ]; then - /usr/sbin/vsftpd & - PID=`pidof -o %PPID /usr/sbin/vsftpd` - if [ -z $PID ]; then - stat_fail - else - add_daemon vsftpd - stat_done - fi - else - stat_fail - fi - ;; - stop) - stat_busy "Stopping vsftpd FTP Daemon" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon vsftpd - stat_done - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" + start) + stat_busy "Starting $daemon_name daemon" + + PID=$(get_pid) + if [ -z "$PID" ]; then + [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid + # RUN + $daemon_name & + # + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + echo $(get_pid) > /var/run/$daemon_name.pid + add_daemon $daemon_name + stat_done + fi + else + stat_fail + exit 1 + fi + ;; + + stop) + stat_busy "Stopping $daemon_name daemon" + PID=$(get_pid) + # KILL + [ ! -z "$PID" ] && kill $PID &> /dev/null + # + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + rm -f /var/run/$daemon_name.pid &> /dev/null + rm_daemon $daemon_name + stat_done + fi + ;; + + restart) + $0 stop + sleep 3 + $0 start + ;; + + status) + stat_busy "Checking $daemon_name status"; + ck_status $daemon_name + ;; + + *) + echo "usage: $0 {start|stop|restart|status}" esac + +exit 0 |