    SPAWN(8)                                                 SPAWN(8)

    NAME
           spawn - Postfix external command spawner

    SYNOPSIS
           spawn [generic Postfix daemon options] command_attributes...

    DESCRIPTION
           The spawn daemon provides the Postfix equivalent of inetd.
           It listens on a port as specified in the Postfix master.cf
           file  and spawns an external command whenever a connection
           is established.  The connection can be made over local IPC
           (such  as UNIX-domain sockets) or over non-local IPC (such
           as TCP sockets).  The command's standard input, output and
           error  streams are connected directly to the communication
           endpoint.

           This daemon expects to be run from the  master(8)  process
           manager.

    COMMAND ATTRIBUTE SYNTAX
           The external command attributes are given in the master.cf
           file at the end of a service definition.  The syntax is as
           follows:

           user=username (required)

           user=username:groupname
                  The external command is executed with the rights of
                  the specified username.  The  software  refuses  to
                  execute  commands with root privileges, or with the
                  privileges of the mail system owner.  If  groupname
                  is  specified,  the  corresponding group ID is used
                  instead of the group ID of of username.

           argv=command... (required)
                  The command to be executed. This must be  specified
                  as the last command attribute.  The command is exe-
                  cuted  directly,  i.e.  without  interpretation  of
                  shell  meta  characters  by  a shell command inter-
                  preter.

    BUGS
           In order to enforce standard Postfix process resource con-
           trols,  the spawn daemon runs only one external command at
           a time.  As such, it presents  a  noticeable  overhead  by
           wasting  precious  process  resources. The spawn daemon is
           expected to be replaced by a more structural solution.

    DIAGNOSTICS
           The spawn daemon reports abnormal child  exits.   Problems
           are logged to syslogd(8).

    SECURITY
           This  program  needs  root  privilege  in order to execute
           external commands as the specified user. It  is  therefore
           security  sensitive.   However  the  spawn daemon does not
           talk to the external command and thus is not vulnerable to
           data-driven attacks.

    CONFIGURATION PARAMETERS
           Changes to main.cf are picked up automatically as spawn(8)
           processes run for only a limited amount of time.  Use  the
           command "postfix reload" to speed up a change.

           The  text  below  provides  only  a parameter summary. See
           postconf(5) for more details including examples.

           In the text below, transport is the  first  field  of  the
           entry in the master.cf file.

    RESOURCE AND RATE CONTROL
           transport_time_limit ($command_time_limit)
                  The  amount  of  time the command is allowed to run
                  before it is terminated.

    MISCELLANEOUS
           config_directory (see 'postconf -d' output)
                  The default location of  the  Postfix  main.cf  and
                  master.cf configuration files.

           daemon_timeout (18000s)
                  How  much time a Postfix daemon process may take to
                  handle a request  before  it  is  terminated  by  a
                  built-in watchdog timer.

           export_environment (see 'postconf -d' output)
                  The  list  of  environment variables that a Postfix
                  process will export to non-Postfix processes.

           ipc_timeout (3600s)
                  The time limit for sending or receiving information
                  over an internal communication channel.

           mail_owner (postfix)
                  The UNIX system account that owns the Postfix queue
                  and most Postfix daemon processes.

           max_idle (100s)
                  The maximum amount of time  that  an  idle  Postfix
                  daemon  process  waits for the next service request
                  before exiting.

           max_use (100)
                  The maximal number of connection requests before  a
                  Postfix daemon process terminates.

           process_id (read-only)
                  The  process ID of a Postfix command or daemon pro-
                  cess.

           process_name (read-only)
                  The process name of a  Postfix  command  or  daemon
                  process.

           queue_directory (see 'postconf -d' output)
                  The  location of the Postfix top-level queue direc-
                  tory.

           syslog_facility (mail)
                  The syslog facility of Postfix logging.

           syslog_name (postfix)
                  The mail system name that is prepended to the  pro-
                  cess  name  in  syslog  records,  so  that  "smtpd"
                  becomes, for example, "postfix/smtpd".

    SEE ALSO
           postconf(5), configuration parameters
           master(8), process manager
           syslogd(8), system logging

    LICENSE
           The Secure Mailer license must be  distributed  with  this
           software.

    AUTHOR(S)
           Wietse Venema
           IBM T.J. Watson Research
           P.O. Box 704
           Yorktown Heights, NY 10598, USA

                                                             SPAWN(8)