master − Postfix master process

master [−Dditvw] [−c config_dir] [−e exit_time]

The master(8) daemon is the resident process that runs
Postfix daemons on demand: daemons to send or receive
messages via the network, daemons to deliver mail locally,
etc.  These daemons are created on demand up to a
configurable maximum number per service.

Postfix daemons terminate voluntarily, either after being
idle for a configurable amount of time, or after having
serviced a configurable number of requests. Exceptions to
this rule are the resident queue manager, address
verification server, and the TLS session cache and
pseudo−random number server.

The behavior of the master(8) daemon is controlled by the configuration file, as described in master(5).


−c config_dir
     Read the and configuration files in
     the named directory instead of the default
     configuration directory.  This also overrides the
     configuration files for other Postfix daemon processes.

−D   After initialization, run a debugger on the master
     process. The debugging command is specified with the
     debugger_command in the global configuration

−d   Do not redirect stdin, stdout or stderr to /dev/null,
     and do not discard the controlling terminal. This must
     be used for debugging only.

−e exit_time
     Terminate the master process after exit_time seconds.
     Child processes terminate at their convenience.

−i   Enable init mode: do not become a session or process
     group leader; and similar to −s, do not redirect stdout
     to /dev/null, so that "maillog_file = /dev/stdout"
     works.  This mode is allowed only if the process ID
     equals 1.

     This feature is available in Postfix 3.3 and later.

−s   Do not redirect stdout to /dev/null, so that
     "maillog_file = /dev/stdout" works.


     This feature is available in Postfix 3.4 and later.

−t   Test mode. Return a zero exit status when the lock file does not exist or when that file
     is not locked.  This is evidence that the master(8)
     daemon is not running.

−v   Enable verbose logging for debugging purposes. This
     option is passed on to child processes. Multiple −v
     options make the software increasingly verbose.

−w   Wait in a dummy foreground process, while the real
     master daemon initializes in a background process.  The
     dummy foreground process returns a zero exit status
     only if the master daemon initialization is successful,
     and if it completes in a reasonable amount of time.

     This feature is available in Postfix 2.10 and later.


     Upon receipt of a HUP signal (e.g., after "postfix
     reload"), the master process re−reads its configuration
     files. If a service has been removed from the
     file, its running processes are terminated immediately.
     Otherwise, running processes are allowed to terminate
     as soon as is convenient, so that changes in
     configuration settings affect only new service

     Upon receipt of a TERM signal (e.g., after "postfix
     abort"), the master process passes the signal on to its
     child processes and terminates.  This is useful for an
     emergency shutdown. Normally one would terminate only
     the master ("postfix stop") and allow running processes
     to finish what they are doing.

Problems are reported to syslogd(8) or postlogd(8).  The
exit status is non−zero in case of problems, including
problems while initializing as a master daemon process in
the background.

     After initialization, start a debugger as specified
     with the debugger_command configuration parameter in
     the configuration file.

     Directory with Postfix configuration files.


Unlike most Postfix daemon processes, the master(8) server
does not automatically pick up changes to Changes
to are never picked up automatically.  Use the
"postfix reload" command after a configuration change.

default_process_limit (100)
     The default maximal number of Postfix child processes
     that provide a given service.

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

service_throttle_time (60s)
     How long the Postfix master(8) waits before forking a
     server that appears to be malfunctioning.

     Available in Postfix version 2.6 and later:

master_service_disable (empty)
     Selectively disable master(8) listener ports by service
     type or by service name and type.

config_directory (see ’postconf ‐d’ output)
     The default location of the Postfix and configuration files.

daemon_directory (see ’postconf ‐d’ output)
     The directory with Postfix support programs and daemon

debugger_command (empty)
     The external command to execute when a Postfix daemon
     program is invoked with the −D option.

inet_interfaces (all)
     The network interface addresses that this mail system
     receives mail on.

inet_protocols (all)
     The Internet protocols Postfix will attempt to use when
     making or accepting connections.


import_environment (see ’postconf ‐d’ output)
     The list of environment parameters that a privileged
     Postfix process will import from a non−Postfix parent
     process, or name=value environment overrides.

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

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

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 example, "smtpd" becomes

     Available in Postfix 3.3 and later:

service_name (read−only)
     The service name of a Postfix daemon process.

To expand the directory names below into their actual
values, use the command "postconf config_directory" etc.

$config_directory/, global configuration file.
$config_directory/, master server configuration file.
$queue_directory/pid/, master lock file.
$data_directory/master.lock, master lock file.

qmgr(8), queue manager
verify(8), address verification
master(5), configuration file syntax
postconf(5), configuration file syntax
postlogd(8), Postfix logging
syslogd(8), system logging

The Secure Mailer license must be distributed with this


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