3 # pureftpd PureFTPD server
6 # description: PureFTPD is fast, production-quality, standard-conformant FTP server
9 # Source function library
10 . /etc/rc.d/init.d/functions
13 . /etc/sysconfig/network
15 PURE_FTPD_CONF=/etc/ftpd/pureftpd.conf
16 [ -f /etc/pure-ftpd/conf/pureftpd.conf ] && PURE_FTPD_CONF=/etc/pure-ftpd/conf/pureftpd.conf
18 PURE_AUTH_SCRIPT=/etc/pure-ftpd/authd/auth.script
19 PURE_AUTH_SOCKET=/var/run/pure-authd/socket
20 PURE_CERT_SCRIPT=/etc/pure-ftpd/certd/cert.script
21 PURE_CERT_SOCKET=/var/run/pure-certd/socket
24 [ -f /etc/sysconfig/pure-ftpd ] && . /etc/sysconfig/pure-ftpd
26 # Check that networking is up.
27 if is_yes "${NETWORKING}"; then
28 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
29 msg_network_down pure-ftpd
37 # Check if the service is already running?
38 if [ ! -f /var/lock/subsys/pure-ftpd ]; then
40 if [ -x "$PURE_AUTH_SCRIPT" ]; then
42 msg_starting pure-authd
44 # 326/326 - authd/authd
46 mkdir -p /var/run/pure-authd
47 chown ftpauth:root /var/run/pure-authd
48 chmod 750 /var/run/pure-authd
50 daemon /usr/sbin/pure-authd --uid 326 --gid 326 --pid /var/run/pure-authd.pid \
51 --run "$PURE_AUTH_SCRIPT" --socket "$PURE_AUTH_SOCKET" --daemonize
53 [ $RETVAL -eq 0 ] && chown root:root "$PURE_AUTH_SOCKET" && chmod 600 "$PURE_AUTH_SOCKET"
55 if [ $RETVAL -eq 0 -a -x "$PURE_CERT_SCRIPT" ]; then
57 msg_starting pure-certd
59 # 335/335 - certd/certd
61 mkdir -p /var/run/pure-certd
62 chown ftpcert:root /var/run/pure-certd
63 chmod 750 /var/run/pure-certd
65 daemon /usr/sbin/pure-certd --uid 335 --gid 335 --pid /var/run/pure-certd.pid \
66 --run "$PURE_CERT_SCRIPT" --socket "$PURE_CERT_SOCKET" --daemonize
68 [ $RETVAL -eq 0 ] && chown root:root "$PURE_CERT_SOCKET" && chmod 600 "$PURE_CERT_SOCKET"
70 if [ $RETVAL -eq 0 ]; then
71 msg_starting pure-ftpd
72 rm -f /var/run/pure-ftpd/client*
73 modprobe -s capability > /dev/null 2>&1
74 daemon /usr/sbin/pure-ftpd ${PURE_FTPD_CONF} \
75 $([ "$PURE_AUTH" = "yes" ] && echo "-lextauth:$PURE_AUTH_SOCKET") \
76 $([ "$PURE_CERT" = "yes" ] && echo "--extcert=$PURE_CERT_SOCKET") \
80 if [ -n "$UPLOADSCRIPT" ]; then
81 msg_starting pure-uploadscript
82 UPLOADSCRIPTOPTS="-B -r $UPLOADSCRIPT"
83 [ -n "$UPLOADSCRIPT_UID" ] && UPLOADSCRIPTOPTS="$UPLOADSCRIPTOPTS -u $UPLOADSCRIPT_UID"
84 [ -n "$UPLOADSCRIPT_GID" ] && UPLOADSCRIPTOPTS="$UPLOADSCRIPTOPTS -g $UPLOADSCRIPT_GID"
85 daemon /usr/sbin/pure-uploadscript $UPLOADSCRIPTOPTS
86 RETVAL=$(($RETVAL+$?))
89 msg_starting pure-ftpd
94 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/pure-ftpd
96 msg_already_running pure-ftpd
102 if [ -f /var/lock/subsys/pure-ftpd ]; then
103 if [ -n "$UPLOADSCRIPT" ]; then
104 msg_stopping pure-uploadscript
105 killproc pure-uploadscript
108 if [ -x "$PURE_AUTH_SCRIPT" -o -r /var/run/pure-authd.pid ]; then
109 msg_stopping pure-authd
113 if [ -x "$PURE_CERT_SCRIPT" -o -r /var/run/pure-certd.pid ]; then
114 msg_stopping pure-certd
118 msg_stopping pure-ftpd
121 rm -f /var/lock/subsys/pure-ftpd > /dev/null 2>&1
123 msg_not_running pure-ftpd
128 # See how we were called.
138 status pure-uploadscript
140 if [ $RETVAL -eq 0 ]; then
144 restart|force-reload)
149 msg_usage "$0 {start|stop|restart|force-reload|status}"