Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> Postfix manual - spawn(8) </title>
</head> <body> <pre>
SPAWN(8)                                                              SPAWN(8)

<b>NAME</b>
       spawn - Postfix external command spawner

<b>SYNOPSIS</b>
       <b>spawn</b> [generic Postfix daemon options] command_attributes...

<b>DESCRIPTION</b>
       The  <a href="spawn.8.html"><b>spawn</b>(8)</a> daemon provides the Postfix equivalent of <b>inetd</b>.  It lis-
       tens on a port as specified in the Postfix <a href="master.5.html"><b>master.cf</b></a> 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 <a href="master.8.html"><b>master</b>(8)</a> process manager.

<b>COMMAND ATTRIBUTE SYNTAX</b>
       The  external command attributes are given in the <a href="master.5.html"><b>master.cf</b></a> file at the
       end of a service definition.  The syntax is as follows:

       <b>user</b>=<i>username</i> (required)

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

       <b>argv</b>=<i>command</i>... (required)
              The command to be executed. This must be specified as  the  last
              command attribute.  The command is executed directly, i.e. with-
              out interpretation of shell meta characters by a  shell  command
              interpreter.

<b>BUGS</b>
       In  order  to  enforce  standard Postfix process resource controls, the
       <a href="spawn.8.html"><b>spawn</b>(8)</a> daemon runs only one external command at a time.  As such,  it
       presents  a  noticeable overhead by wasting precious process resources.
       The <a href="spawn.8.html"><b>spawn</b>(8)</a> daemon is expected to be replaced  by  a  more  structural
       solution.

<b>DIAGNOSTICS</b>
       The  <a href="spawn.8.html"><b>spawn</b>(8)</a> daemon reports abnormal child exits.  Problems are logged
       to <b>syslogd</b>(8) or <a href="postlogd.8.html"><b>postlogd</b>(8)</a>.

<b>SECURITY</b>
       This program needs root privilege in order to execute external commands
       as the specified user. It is therefore security sensitive.  However the
       <a href="spawn.8.html"><b>spawn</b>(8)</a> daemon does not talk to the external command and thus  is  not
       vulnerable to data-driven attacks.

<b>CONFIGURATION PARAMETERS</b>
       Changes  to  <a href="postconf.5.html"><b>main.cf</b></a>  are picked up automatically as <a href="spawn.8.html"><b>spawn</b>(8)</a> processes
       run for only a limited amount of time. Use the command "<b>postfix reload</b>"
       to speed up a change.

       The  text  below provides only a parameter summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for
       more details including examples.

       In the text below, <i>transport</i> is the first field of  the  entry  in  the
       <a href="master.5.html"><b>master.cf</b></a> file.

<b>RESOURCE AND RATE CONTROL</b>
       <b><a href="postconf.5.html#transport_time_limit">transport_time_limit</a> ($<a href="postconf.5.html#command_time_limit">command_time_limit</a>)</b>
              A transport-specific override for the <a href="postconf.5.html#command_time_limit">command_time_limit</a> parame-
              ter value, where <i>transport</i> is the <a href="master.5.html">master.cf</a> name of the  message
              delivery transport.

<b>MISCELLANEOUS</b>
       <b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
              The  default  location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
              figuration files.

       <b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
              How much time a Postfix daemon process  may  take  to  handle  a
              request before it is terminated by a built-in watchdog timer.

       <b><a href="postconf.5.html#export_environment">export_environment</a> (see 'postconf -d' output)</b>
              The  list  of  environment variables that a Postfix process will
              export to non-Postfix processes.

       <b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
              The time limit for sending  or  receiving  information  over  an
              internal communication channel.

       <b><a href="postconf.5.html#mail_owner">mail_owner</a> (postfix)</b>
              The  UNIX  system  account  that owns the Postfix queue and most
              Postfix daemon processes.

       <b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
              The maximum amount of time that an idle Postfix  daemon  process
              waits for an incoming connection before terminating voluntarily.

       <b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
              The maximal number of incoming connections that a Postfix daemon
              process will service before terminating voluntarily.

       <b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
              The process ID of a Postfix command or daemon process.

       <b><a href="postconf.5.html#process_name">process_name</a> (read-only)</b>
              The process name of a Postfix command or daemon process.

       <b><a href="postconf.5.html#queue_directory">queue_directory</a> (see 'postconf -d' output)</b>
              The location of the Postfix top-level queue directory.

       <b><a href="postconf.5.html#syslog_facility">syslog_facility</a> (mail)</b>
              The syslog facility of Postfix logging.

       <b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
              A  prefix  that  is  prepended  to  the  process  name in syslog
              records, so that, for example, "smtpd" becomes "prefix/smtpd".

       Available in Postfix 3.3 and later:

       <b><a href="postconf.5.html#service_name">service_name</a> (read-only)</b>
              The <a href="master.5.html">master.cf</a> service name of a Postfix daemon process.

<b>SEE ALSO</b>
       <a href="postconf.5.html">postconf(5)</a>, configuration parameters
       <a href="master.8.html">master(8)</a>, process manager
       <a href="postlogd.8.html">postlogd(8)</a>, Postfix logging
       syslogd(8), system logging

<b>LICENSE</b>
       The Secure Mailer license must be distributed with this software.

<b>AUTHOR(S)</b>
       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(8)
</pre> </body> </html>