Edit file File name : proftpd Content :#!/bin/sh ### BEGIN INIT INFO # Provides: proftpd # Required-Start: $remote_fs $syslog $local_fs $network # Required-Stop: $remote_fs $syslog $local_fs $network # Should-Start: $named # Should-Stop: $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts ProFTPD daemon # Description: This script runs the FTP service offered # by the ProFTPD daemon ### END INIT INFO # Start the proftpd FTP daemon. PATH=/bin:/usr/bin:/sbin:/usr/sbin DAEMON=/usr/sbin/proftpd NAME=proftpd # Defaults RUN="yes" OPTIONS="" CONFIG_FILE=/etc/proftpd/proftpd.conf PIDFILE=`grep -i 'pidfile' $CONFIG_FILE|sed -e 's/[\t ]*pidfile[\t ]\+//i'` if [ "x$PIDFILE" = "x" ]; then PIDFILE=/run/proftpd.pid fi # Read config (will override defaults) [ -r /etc/default/proftpd ] && . /etc/default/proftpd trap "" 1 trap "" 15 test -f $DAEMON || exit 0 . /lib/lsb/init-functions # # Servertype could be inetd|standalone|none. # In all cases check against inetd and xinetd support. # if ! egrep -qi "^[[:space:]]*ServerType.*standalone" $CONFIG_FILE then if egrep -qi "server[[:space:]]*=[[:space:]]*/usr/sbin/(in\.)?proftpd" /etc/xinetd.conf 2>/dev/null || \ egrep -qi "server[[:space:]]*=[[:space:]]*/usr/sbin/(in\.)?proftpd" /etc/xinetd.d/* 2>/dev/null || \ egrep -qi "^ftp.*/usr/sbin/(in\.)?proftpd" /etc/inetd.d/* 2>/dev/null || \ egrep -qi "^ftp.*/usr/sbin/(in\.)?proftpd" /etc/inetd.conf 2>/dev/null then RUN="no" INETD="yes" else if ! egrep -qi "^[[:space:]]*ServerType.*inetd" $CONFIG_FILE then RUN="yes" INETD="no" else RUN="no" INETD="no" fi fi fi # /run could be on a tmpfs [ ! -d /run/proftpd ] && mkdir /run/proftpd [ -x /sbin/restorecon ] && /sbin/restorecon /run/proftpd inetd_check() { if [ ! -x /usr/sbin/inetd -a ! -x /usr/sbin/xinetd -a \ ! -x /usr/sbin/inetutils-inetd ]; then echo "Neither inetd nor xinetd appears installed: check your configuration." fi } start() { log_daemon_msg "Starting ftp server" "$NAME" start-stop-daemon --start --quiet --pidfile "$PIDFILE" --oknodo --exec $DAEMON -- -c $CONFIG_FILE $OPTIONS if [ $? != 0 ]; then log_end_msg 1 exit 1 else log_end_msg 0 fi } signal() { if [ "$1" = "stop" ]; then SIGNAL="TERM" log_daemon_msg "Stopping ftp server" "$NAME" else if [ "$1" = "reload" ]; then SIGNAL="HUP" log_daemon_msg "Reloading ftp server" "$NAME" start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE" exit $? else echo "ERR: wrong parameter given to signal()" exit 1 fi fi if [ -f "$PIDFILE" ]; then start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE" --retry $SIGNAL/30/KILL/60 if [ $? = 0 ]; then log_end_msg 0 else start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE" --retry $SIGNAL/30/KILL/60 if [ $? != 0 ]; then log_end_msg 1 [ $2 != 0 ] || exit 0 else log_end_msg 0 fi fi if [ "$SIGNAL" = "KILL" ]; then rm -f "$PIDFILE" fi else log_end_msg 0 fi } case "$1" in start) if [ "x$RUN" = "xyes" ] ; then start else if [ "x$INETD" = "xyes" ] ; then echo "ProFTPD is started from inetd/xinetd." inetd_check else echo "ProFTPD warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration." fi fi ;; force-start) if [ "x$INETD" = "xyes" ] ; then echo "Warning: ProFTPD is started from inetd/xinetd (trying to start anyway)." inetd_check fi start ;; stop) if [ "x$RUN" = "xyes" ] ; then signal stop 0 else if [ "x$INETD" = "xyes" ] ; then echo "ProFTPD is started from inetd/xinetd." inetd_check else echo "ProFTPD warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration." fi fi ;; force-stop) if [ "x$INETD" = "xyes" ] ; then echo "Warning: ProFTPD is started from inetd/xinetd (trying to kill anyway)." inetd_check fi signal stop 0 ;; reload) signal reload 0 ;; force-reload|restart) if [ "x$RUN" = "xyes" ] ; then signal stop 1 start else if [ "x$INETD" = "xyes" ] ; then echo "ProFTPD is started from inetd/xinetd." inetd_check else echo "ProFTPD warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration." fi fi ;; status) if [ "x$INETD" = "xyes" ] ; then echo "ProFTPD is started from inetd/xinetd." inetd_check exit 0 else if [ -f "$PIDFILE" ]; then pid=$(cat $PIDFILE) else pid="x" fi if [ `pidof proftpd|grep "$pid"|wc -l` -ne 0 ] ; then echo "ProFTPD is started in standalone mode, currently running." exit 0 else echo "ProFTPD is started in standalone mode, currently not running." exit 3 fi fi ;; check-config) $DAEMON -t >/dev/null && echo "ProFTPD configuration OK" && exit 0 exit 1 ;; *) echo "Usage: /etc/init.d/$NAME {start|status|force-start|stop|force-stop|reload|restart|force-reload|check-config}" exit 1 ;; esac exit 0 Save