.\" Zmscanner API manual page .\" .\" $Id$ .\" .\" $Log: zmscanner.8,v $ .\" Revision 1.2 2004/07/25 22:27:11 crosser .\" remaining manual pages .\" .\" Revision 1.1 2003/12/13 20:47:37 crosser .\" add man page placeholders .\" .\" .\" WHAT IS IT: .\" modularized contentfilter for Zmailer .\" COPYRIGHT: .\" (c) 2003 Eugene G. Crosser .\" LICENSE: .\" The same set as apply to Zmailer code .\" .TH ZMSCANNER 8 "13 Dec 2003" ZMSCANNER ZMSCANNER .SH NAME zmscanner \- Zmascanner daemon .SH SYNOPSYS .B zmscanner [-I configfile] [-i ctlsock] [-d] [-v] [-V] [-h] .SH DESCRIPTION .B zmscanner command starts the daemon that uses (runtime configurable) set of functions to analyze various parts of an email message, convert them to other formats and/or break to smaller parts, and make decisions about the message acceptability. In other words, it is a modular email content scanner. .B Zmscanner listens on a unix domain socket and accepts Zmailer (http://www.zmailer.org/) smtpserver requests to scan received messages prior to acknowledging reception to the SMTP client. .SH OPTIONS .B \-I configfile \- specify non\-default configuration file (see .BR zmscanner.conf "(5) for syntax description). .sp .B \-i socket file descriptor \- use file descriptor of an already open unix domain socket. This option is .I NOT for humans: .B zmscanner uses this option for graceful restart, when it execuses itself. One case when humans may want to use it is the form .B \-i 0 which means use stdin to accept requests and stdout to send replies. It also implies .B -d (do not go to background). .sp .B \-d \- do .B not go to the background. By default, the program forks a child that closes stdin, stdout and stderr, detaches from the controlling terminal and continue in the background. The parent process finishes. .sp .B \-v \- verbose operation \- print debugging output to stdout. Useful together with .B \-d option. .sp .B \-V \- print version information and exit. .sp .B \-h \- print a message with usage hints and exit. .SH SIGNALS When the daemon gets SIGUSR1, it forks and execs its own binary without closing the control socket, passing the file descriptor in the .B \-i option. When the child initializes itself and is ready to process requests, it signals the parent with SIGUSR2 which causes graceful shudown of the process after all active processing threads terminate. This way, listening socket is never left unattended, and daemon reload is done without service interruption even if the daemon binary and/or loadable modules where replaced by new copies. PID of the process can be determined from the pid file (see .BR zmscanner.conf "(5) for details). .SH COPYRIGHT 2003-2004, Eugene G. Crosser .br License same as Zmailer (http://www.zmailer.org/) .SH SEE ALSO .BR zmscanner "(3), " zmsctl "(8), " zmscanner.conf "(5)