Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MD-MX-CTRL(8)		    System Manager's Manual		 MD-MX-CTRL(8)

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-multi-
	      plexor.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 worker Perl processes in	human-readable
	      format.

       rawstatus
	      Prints the status	of all worker 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  charac-
	      ter.

	      Each character in	the first word corresponds to a	worker,	and is
	      "I"  for an idle worker, "B" for a busy worker, "S" for a	worker
	      which is not running, and	 "K"  for  a  worker  which  has  been
	      killed,  but has not yet exited.	A worker 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 worker, but  one  can  be
	      started  if  the	load  warrants.	 Finally, "K" means the	worker
	      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 workers 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 workers 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	workers	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  workers.	  Each
	      line  contains the count of busy workers (1, 2, 3	up to MX_MAXI-
	      MUM), a space, and the number of times that  many	 workers  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 in-
	      terval.

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

	      Avg  Busy	Workers: The average number of busy workers 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
	      worker 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 for-
	      mat 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 min-
	      utes.

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

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

	      The fourth four are the number of	worker activations (new	 work-
	      ers  started)  over the last 10 seconds, 1 minute, 5 minutes and
	      10 minutes.

	      The fifth	four are the number of workers	reaped	(workers  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
	      workers.

	      The  seventh four	are the	number of messages processed, the num-
	      ber of worker 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 worker 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 worker 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 worker activation and reap	statistics are
	      present, but always 0.  They are only valid in  a	 rawload  com-
	      mand.

       load1 nsecs
	      The  load1  command  displays the	load for various commands over
	      the last nsecs seconds, where nsecs is an	 integer  from	10  to
	      600.   The  load1	 command combines the output of	load, load-re-
	      layok, load-senderokf and	load-recipok into one display.

	      You might	use the	command	like this:

		   watch -n 10 md-mx-ctrl load1	60

       rawload1	nsecs
	      Returns the load1	data in	human-readable format.	The result  is
	      a	line containing	twenty-six space-separated numbers:

	      The first	three numbers are the number of	scans performed	in the
	      last  nsecs  seconds,  the average number	of busy	workers	when a
	      scan was initiated and the average number	 of  milliseconds  per
	      scan.

	      The  second  three  are  the  same measurements for filter_relay
	      calls.

	      The third	three are  the	same  measurements  for	 filter_sender
	      calls.

	      The  fourth  three  are  the  same measurements for filter_relay
	      calls.

	      The thirteenth through sixteenth numbers are the number of busy,
	      idle, stopped and	killed workers,	respectively.

	      The seventeenth number is	the number of scans since  mimedefang-
	      multiplexor was started.

	      The  eighteenth  number  is the number of	times a	new worker has
	      been activated since program startup.

	      The nineteenth number is the size	of the request queue  and  the
	      twentieth	number is the actual number of queued requests.

	      The  twenty-first	 number	 is the	time since program startup and
	      the twenty-second	number is a copy of nsecs for convenience.

	      The twenty-third through twenty-sixth numbers are	the number  of
	      workers  currently  executing  a scan, relayok, senderok and re-
	      cipok command respectively.

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

       busyworkers
	      Similar to workers, but  only  outputs  a	 line  for  each  busy
	      worker.  The command busyslaves is a deprecated synonym for this
	      command.

       workerinfo n
	      Displays	information about worker number	n.  The	command	slave-
	      info is a	deprecated synonym for this command.

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

       msgs   Prints  the  total  number  of messages scanned since the	multi-
	      plexor started.

ADDITIONAL COMMANDS
       You can supply any other	command	and arguments to md-mx-ctrl.  It  per-
       cent-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  workers.	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 Dianne	Skoll  <dfs@roaringpenguin.com>.   The
       mimedefang home page is http://www.mimedefang.org/.

SEE ALSO
       mimedefang.pl(8),  mimedefang-filter(5),	mimedefang(8), mimedefang-pro-
       tocol(7), watch-mimedefang(8)

4th Berkeley Distribution	8 February 2005			 MD-MX-CTRL(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=md-mx-ctrl&sektion=8&manpath=FreeBSD+Ports+15.0.quarterly>

home | help