master − Postfix master process


master [-Ddtvw] [-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).


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.


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


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.


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.


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


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 requests.


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). 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 voluntarily.

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 programs.

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 Postfix process will import from a non-Postfix parent process.

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 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)

The mail system name that is prepended to the process name in syslog records, so that "smtpd" becomes, for example, "postfix/smtpd".


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(1ssl), address verification
master(5), configuration file syntax
postconf(1), configuration file syntax
syslogd(8), system logging


The Secure Mailer license must be distributed with this software.


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

More Linux Commands

tk_patchLevel(n) Variables used or set by Tk _______________
The following Tcl variables are either set or used by Tk at various times in its execution: tk_library This variable holds the file name for a directory contain

gnutls_pubkey_import_privkey(3) - API function (Man Page)...
Imports the public key from a private. This function will import the given public key to the abstract gnutls_pubkey_t structure. RETURNS On success, GNUTLS_E_SU

isalnum_l(3) character classification functions (Man Page)
These functions check whether c, which must have the value of an unsigned char or EOF, falls into a certain character class according to the specified locale. T

pthread_attr_setinheritsched(3) - set/get inherit scheduler
The pthread_attr_setinheritsched() function sets the inherit-scheduler attribute of the thread attributes object referred to by attr to the value specified in i

XkbAllocGeometry(3) - Allocate an entire geometry (ManPage)
XkbAllocGeometry.3 - Xkb provides a number of functions to allocate and free subcomponents of a keyboard geometry. Use these functions to create or modify keybo

gnutls_x509_crl_get_version(3) - API function (Man Page)....
This function will return the version of the specified CRL. RETURNS The version number, or a negative error code on error. REPORTING BUGS Report bugs to <bug-gn

rexec_af(3) return stream to a remote command (Man Page)....
This interface is obsoleted by rcmd(3). The rexec() function looks up the host *ahost using gethostbyname(3), returning -1 if the host does not exist. Otherwise

Tcl_Realloc(3) - allocate or free heap memory (Man Page)....
These procedures provide a platform and compiler independent interface for memory allocation. Programs that need to transfer ownership of memory blocks between

jn(3) - Bessel functions of the first kind - Linux man page
The j0() and j1() functions return Bessel functions of x of the first kind of orders 0 and 1, respectively. The jn() function returns the Bessel function of x o

__freadable(3) - interfaces to stdio FILE structure.........
Solaris introduced routines to allow portable access to the internals of the FILE structure, and glibc also implemented these. The __fbufsize() function returns

ldap_memory(3) - LDAP memory allocation routines (Man Page)
These routines are used to allocate/deallocate memory used/returned by the LDAP library. ldap_memalloc(), ldap_memcalloc(), ldap_memrealloc(), and ldap_memfree(

conjf(3) - calculate the complex conjugate - Linux man page
The conj() function returns the complex conjugate value of z. That is the value obtained by changing the sign of the imaginary part. One has: cabs(z) = csqrt(z

We can't live, work or learn in freedom unless the software we use is free.