---
name: "master"
section: "8"
platform: "linux"
package: "postfix"
version: "3.11.7-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/master"
---

# master(8)

Postfix master process

## NAME

master - Postfix master process

## SYNOPSIS

```
master [-Dditvw] [-c config_dir] [-e exit_time]
```

## DESCRIPTION

The [**master**(8)](/master/8.md) 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)](/master/8.md) daemon is controlled by the **master.cf** configuration file, as described in [**master**(5)](/master/5.md).

Options:

- **-c** *config\_dir*

  Read the **main.cf** and **master.cf** 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 **main.cf** global configuration file.

- **-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 **master.pid** lock file does not exist or when that file is not locked.  This is evidence that the [**master**(8)](/master/8.md) 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.

Signals:

- **SIGHUP**

  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 **master.cf** 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.

- **SIGTERM**

  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.

## DIAGNOSTICS

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

## ENVIRONMENT

```

```

- **MAIL\_DEBUG**

  After initialization, start a debugger as specified with the **debugger\_command** configuration parameter in the **main.cf** configuration file.

- **MAIL\_CONFIG**

  Directory with Postfix configuration files.

## CONFIGURATION PARAMETERS

```

```

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

## RESOURCE AND RATE CONTROLS

```

```

- **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)](/master/8.md) 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)](/master/8.md) listener ports by service type or by service name and type.

## MISCELLANEOUS CONTROLS

```

```

- **config\_directory (see 'postconf -d' output)**

  The default location of the Postfix main.cf and master.cf 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 local network interface addresses that this mail system receives mail on.

- **inet\_protocols (see 'postconf -d' output)**

  The Internet protocols Postfix will attempt to use when making or accepting connections.

- **import\_environment (see 'postconf -d' output)**

  The list of environment variables 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 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 example, "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.

Available in Postfix 3.6 and later:

- **known\_tcp\_ports (lmtp=24, smtp=25, smtps=submissions=465, submission=587)**

  Optional setting that avoids lookups in the [**services**(5)](/services/5.md) database.

## FILES

```

```

To expand the directory names below into their actual values, use the command "**postconf config\_directory**" etc.

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

## SEE ALSO

```
qmgr(8), queue manager
verify(8), address verification
master(5), master.cf configuration file syntax
postconf(5), main.cf configuration file syntax
postlogd(8), Postfix logging
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
Wietse Venema
Google, Inc.
111 8th Avenue
New York, NY 10011, USA
```
