# spawn - man(8) - [phpMan]

[_SPAWN_(8postfix)](https://www.chedong.com/phpMan.php/man/SPAWN/8postfix/markdown)                                                                      [_SPAWN_(8postfix)](https://www.chedong.com/phpMan.php/man/SPAWN/8postfix/markdown)

## NAME
       spawn - Postfix external command spawner

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

## DESCRIPTION
       The [**spawn**(8)](https://www.chedong.com/phpMan.php/man/spawn/8/markdown) daemon provides the Postfix equivalent of **inetd**.  It listens on a port as speci‐
       fied  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)](https://www.chedong.com/phpMan.php/man/master/8/markdown) process manager.

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

       **user**=_username_ (required)

       **user**=_username_:_groupname_
              The external command is executed with the rights of the specified _username_.  The soft‐
              ware  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  in‐
              stead of the group ID of _username_.

       **argv**=_command_... (required)
              The command to be executed. This must be specified as the last command attribute.  The
              command  is executed directly, i.e. without interpretation of shell meta characters by
              a shell command interpreter.

## BUGS
       In order to enforce standard Postfix process resource controls, the [**spawn**(8)](https://www.chedong.com/phpMan.php/man/spawn/8/markdown) daemon runs only
       one external command at a time.  As such, it presents a noticeable overhead by  wasting  pre‐
       cious  process resources. The [**spawn**(8)](https://www.chedong.com/phpMan.php/man/spawn/8/markdown) daemon is expected to be replaced by a more structural
       solution.

## DIAGNOSTICS
       The [**spawn**(8)](https://www.chedong.com/phpMan.php/man/spawn/8/markdown) daemon reports abnormal child exits.  Problems are logged to [**syslogd**(8)](https://www.chedong.com/phpMan.php/man/syslogd/8/markdown) or **post‐**
       [**logd**(8)](https://www.chedong.com/phpMan.php/man/logd/8/markdown).

## SECURITY
       This program needs root privilege in order to execute  external  commands  as  the  specified
       user.  It  is therefore security sensitive.  However the [**spawn**(8)](https://www.chedong.com/phpMan.php/man/spawn/8/markdown) 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)](https://www.chedong.com/phpMan.php/man/spawn/8/markdown) 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)](https://www.chedong.com/phpMan.php/man/postconf/5/markdown) 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)
              A transport-specific override for the command_time_limit parameter value, where _trans‐_
              _port_ is the master.cf name of the message delivery transport.

## 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  ter‐
              minated 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 an incoming
              connection before terminating voluntarily.

### max_use (100)
              The maximal number of incoming connections that a Postfix daemon process will  service
              before terminating voluntarily.

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

### 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 directory.

### syslog_facility (mail)
              The syslog facility of Postfix logging.

### syslog_name (see 'postconf -d' output)
              A  prefix  that is prepended to the process name in syslog records, so that, for exam‐
              ple, "smtpd" becomes "prefix/smtpd".

       Available in Postfix 3.3 and later:

### service_name (read-only)
              The master.cf service name of a Postfix daemon process.

## SEE ALSO
       [postconf(5)](https://www.chedong.com/phpMan.php/man/postconf/5/markdown), configuration parameters
       [master(8)](https://www.chedong.com/phpMan.php/man/master/8/markdown), process manager
       [postlogd(8)](https://www.chedong.com/phpMan.php/man/postlogd/8/markdown), Postfix logging
       [syslogd(8)](https://www.chedong.com/phpMan.php/man/syslogd/8/markdown), 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

       Wietse Venema
       Google, Inc.
       111 8th Avenue
       New York, NY 10011, USA

                                                                                     [_SPAWN_(8postfix)](https://www.chedong.com/phpMan.php/man/SPAWN/8postfix/markdown)
