Current File : //bin/qmailctl
#!/bin/sh

PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin;export PATH

SERVICES='qmail-send
qmail-smtpd'

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

case "$1" in
  start)
    echo "Starting qmail"
    for i in `echo $SERVICES`
    do
      if svok /service/$i ; then
        svc -u /service/$i
      else
        echo $i service not running
      fi
    done
    ;;
  stop)
    echo "Stopping qmail..."
    for i in `echo $SERVICES`
    do
      echo "  $i"
      svc -d /service/$i
    done
    ;;
  stat)
    for i in `echo $SERVICES`
    do
      svstat /service/$i
      svstat /service/$i/log
    done
    qmail-qstat
    ;;
  doqueue|alrm|flush)
    echo "Sending ALRM signal to qmail-send."
    svc -a /service/qmail-send
    ;;
  queue)
    qmail-qstat
    qmail-qread
    ;;
  reload|hup)
    echo "Sending HUP signal to qmail-send."
    svc -h /service/qmail-send
    ;;
  pause)
    for i in `echo $SERVICES`
    do
      echo "Pausing $i"
      svc -p /service/$i
    done
    ;;
  cont)
    for i in `echo $SERVICES`
    do
      echo "Continuing $i"
      svc -c /service/$i
    done
    ;;
  restart)
    echo "Restarting qmail:"
    for i in `echo $SERVICES`
    do
      echo "* Restarting $i."
      svc -d /service/$i
      svc -u /service/$i
    done
    for j in `ps -Af |grep remote|grep @|awk '{print $2}'`
      do
        kill $j
    done
    svc -t /service/qmail-send 
    
    ;;
  cdb)
    /var/vpopmail/bin/clearopensmtp
    echo "Ran /var/vpopmail/bin/clearopensmtp."
    ;;
  help)
    cat <<HELP
   stop -- stops mail service (smtp connections refused, nothing goes out)
  start -- starts mail service (smtp connection accepted, mail can go out)
  pause -- temporarily stops mail service (connections accepted, nothing leaves)
   cont -- continues paused mail service
   stat -- displays status of mail service
    cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- sends qmail-send ALRM, scheduling queued messages for delivery
 reload -- sends qmail-send HUP, rereading locals and virtualdomains
  queue -- shows status of queue
   alrm -- same as doqueue
  flush -- same as doqueue
    hup -- same as reload
HELP
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
    exit 1
    ;;
esac

exit 0