Skip to content

Instantly share code, notes, and snippets.

@pacojp
Created June 13, 2013 12:09
Show Gist options
  • Save pacojp/5773189 to your computer and use it in GitHub Desktop.
Save pacojp/5773189 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# qmail
#
# chkconfig: 2345 80 30
# description: qmail start/stop script
# Source function library.
. /etc/rc.d/init.d/functions
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
[ -f /var/qmail/rc ] || exit 0
start() {
# Start daemons.
if [ -z $(/sbin/pidof qmail-send) ]; then
echo -n "Starting qmail"
# qmail
csh -cf '/var/qmail/rc &' 2>&1 > /dev/null
# SMTP(21)
tcpserver -qv -l0 -HR -u id -u qmaild -g id -g qmaild \
-x /var/qmail/vpopmail/etc/tcp.smtp.cdb 0 smtp \
fixcrio qmail-smtpd `/bin/cat /var/qmail/control/me` /bin/true 2>&1|\
splogger smtp &
# SMTP(587)
tcpserver -qv -l0 -HR -u id -u qmaild -g id -g qmaild \
-x /var/qmail/vpopmail/etc/tcp.smtp.cdb 0 587 \
fixcrio qmail-smtpd `/bin/cat /var/qmail/control/me` /bin/true 2>&1|\
splogger smtp &
# POP3
tcpserver -H -R -l `/bin/cat /var/qmail/control/me` -v 0 pop3 \
/var/qmail/bin/qmail-popup `/bin/cat /var/qmail/control/me` \
/var/qmail/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3 &
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/qmail
return $RETVAL
else
echo "qmail is already started"
fi
}
stop() {
# Stop daemons.
if [ ! -z $(/sbin/pidof qmail-send) ]; then
echo -n "Shutting down qmail"
/bin/kill $(/sbin/pidof tcpserver)
/bin/kill $(/sbin/pidof qmail-send)
until [ -z $(/sbin/pidof qmail-send) ] && [ -z $(/sbin/pidof tcpserver) ]; do :; done
echo
rm -f /var/lock/subsys/qmail
else
echo "qmail is not running"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
if [ ! -z $(/sbin/pidof qmail-send) ] ; then
echo -n "qmail (pid"
echo -n "/sbin/pidof qmail-send"
echo -n "/sbin/pidof tcpserver"
echo ") is running…"
else
echo "qmail is stopped"
fi
;;
*)
echo "Usage: qmail {start|stop|restart|status}"
exit 1
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment