Provided by: mimedefang_2.53-1_i386 bug

NAME

       md-mx-ctrl - Control mimedefang-multiplexor

SYNOPSIS

       md-mx-ctrl [options] command

DESCRIPTION

       md-mx-ctrl  is  a  command-line tool for communicating with mimedefang-
       multiplexor(8).

OPTIONS

       -h     Displays usage information.

       -s path
              Specifies the path to the mimedefang-multiplexor socket.  If not
              specified,    defaults    to   /var/spool/MIMEDefang/mimedefang-
              multiplexor.sock.

       -i     This flag causes md-mx-ctrl to sit in a loop,  reading  commands
              on  standard  input and printing results to standard output.  It
              is intended for use by  a  monitoring  program  such  as  watch-
              mimedefang.

COMMANDS

       The following commands are available:

       status Prints  the status of all slave Perl processes in human-readable
              format.

       rawstatus
              Prints the status of all slave Perl processes in a  format  easy
              to  parse  by  computer.   The  result is a single line with six
              words on  it.   The  words  are  separated  by  a  single  space
              character.

              Each  character in the first word corresponds to a slave, and is
              "I" for an idle slave, "B" for a busy slave,  "S"  for  a  slave
              which is not running, and "K" for a slave which has been killed,
              but has not yet exited.  A slave is "idle" if there is a running
              Perl  process waiting to do work.  "Busy" means the Perl process
              is currently  filtering  a  message.   "S"  means  there  is  no
              associated  Perl  process with the slave, but one can be started
              if the load warrants.  Finally, "K" means the slave Perl process
              has been killed, but has yet to terminate.

              The  second word is the total number of messages processed since
              the multiplexor started up.  The third word is the total  number
              of  slaves  which  have  been  activated  since  the multiplexor
              started up.  (That is, it’s a count of the number of  times  the
              multiplexor has forked and exec’d the Perl filter.)

              The  fourth  word  is the size of the queue for request queuing,
              and the fifth word is the  actual  number  of  requests  in  the
              queue.   The  sixth  word is the number of seconds elapsed since
              the multiplexor was started.

       barstatus
              Prints the status of busy slaves and queued requests in  a  nice
              "bar  chart" format.  This lets you keep an eye on things with a
              script like this:

                   while true ; do
                        md-mx-ctrl barstatus
                        sleep 1
                   done

       histo  Prints a histogram showing the number of slaves that  were  busy
              each time a request was processed.  A single line is printed for
              the numbers from 1 up to the maximum  number  of  slaves.   Each
              line  contains  the  count  of  busy  slaves  (1,  2,  3  up  to
              MX_MAXIMUM), a space, and the number of times that  many  slaves
              were busy when a request was processed.

       load   Prints  a table showing "load averages" for the last 10 seconds,
              1 minute, 5 minutes and 10 minutes.

              Each row in the table corresponds to a time interval,  displayed
              in the first column.  The remaining columns in the table are:

              Msgs:  The  number  of  messages  scanned  within the row’s time
              interval.

              Msgs/Sec: The average number  of  messages  scanned  per  second
              within the row’s time interval.

              Avg  Busy  Slaves:  The average number of busy slaves whenever a
              message was scanned.  (If you are processing any  mail  at  all,
              this  number  will be at least 1, because there is always 1 busy
              slave when a message is scanned.)

              If you have the watch(1) command on your system, you can keep an
              eye on the load with this command:

                   watch -n 10 md-mx-ctrl load

              If  you  do not have watch, the following shell script is a less
              fancy equivalent:

                   #!/bin/sh
                   while true; do
                        clear
                        date
                        md-mx-ctrl load
                        sleep 10
                   done

       rawload

              Prints the  load  averages  in  computer-readable  format.   The
              format consists of twenty-nine space-separated numbers:

              The  first four are integers representing the number of messages
              scanned in the last 10 seconds,  1  minute,  5  minutes  and  10
              minutes.

              The  second  four  are  floating-point  numbers representing the
              average number of busy slaves in the last 10 seconds, 1  minute,
              5 minutes and 10 minutes.

              The  third  four  are  floating-point  numbers  representing the
              average time per scan in milliseconds over the last 10  seconds,
              1 minute, 5 minutes and 10 minutes.

              The  fourth four are the number of slave activations (new slaves
              started) over the last 10 seconds, 1 minute, 5  minutes  and  10
              minutes.

              The fifth four are the number of slaves reaped (slaves that have
              exited) over the last 10 seconds, 1 minute,  5  minutes  and  10
              minutes.

              The  sixth four are the number of busy, idle, stopped and killed
              slaves.

              The seventh four are  the  number  of  messages  processed,  the
              number  of slave activations, the size of the request queue, and
              the number of requests actually on the queue.

              The final number is the number of seconds since the  multiplexor
              was started.

       load-relayok
              Similar to load, but shows timings for filter_relay calls.

       load-senderok
              Similar to load, but shows timings for filter_sender calls.

       load-recipok
              Similar to load, but shows timings for filter_recipient calls.

       rawload-relayok
              Similar  to  rawload,  but shows timings for filter_relay calls.
              Note that the slave activation and reap statistics are  present,
              but always 0.  They are only valid in a rawload command.

       rawload-senderok
              Similar  to  rawload, but shows timings for filter_sender calls.
              Note that the slave activation and reap statistics are  present,
              but always 0.  They are only valid in a rawload command.

       rawload-recipok
              Similar  to  rawload,  but  shows  timings  for filter_recipient
              calls.  Note that the slave activation and reap  statistics  are
              present,  but  always  0.   They  are  only  valid  in a rawload
              command.

       slaves Displays a list of slaves and their process IDs.  Each  line  of
              output consists of a slave number, a status (I, B, K, or S), and
              for idle or busy slaves, the process-ID of the slave.  For  busy
              slaves,  the  line may contain additional information about what
              the slave is doing.

       busyslaves
              Similar to slaves, but only outputs a line for each busy  slave.

       slaveinfo n
              Displays information about slave number n.

       reread Forces  mimedefang-multiplexor  to  kill  all  idle  slaves, and
              terminate and restart busy slaves when they become  idle.   This
              forces a reread of filter rules.

       msgs   Prints   the   total   number  of  messages  scanned  since  the
              multiplexor started.

ADDITIONAL COMMANDS

       You can supply any other  command  and  arguments  to  md-mx-ctrl.   It
       percent-encodes each command-line argument, glues the encoded arguments
       together with a single space between each, and sends the result to  the
       multiplexor  as  a command.  This allows you to send arbitrary commands
       to your  Perl  slaves.   See  the  section  "EXTENDING  MIMEDEFANG"  in
       mimedefang-filter(5) for additional details.

PERMISSIONS

       md-mx-ctrl  uses the multiplexor’s socket; therefore, it probably needs
       to be run as root or the same user as mimedefang-multiplexor.

AUTHOR

       md-mx-ctrl was written by David F. Skoll <dfs@roaringpenguin.com>.  The
       mimedefang home page is http://www.mimedefang.org/.

SEE ALSO

       mimedefang.pl(8),   mimedefang-filter(5),   mimedefang(8),  mimedefang-
       protocol(7), watch-mimedefang(8)