ForkEachJob

Process queue files individually All versions

On machines with a small amount of memory (such as 3B1s and old Sun 3s), it is best to limit the size of running processes. One way to do this is to have the sendmail program fork(2) a copy of itself to handle each individual queued message. The ForkEachJob option can be used to allow those fork(2)s.

The forms of the ForkEachJob option are as follows:

O ForkEachJob=boolconfiguration file (V8.7 and later)
-OForkEachJob=boolcommand line (V8.7 and later)
define(`confSEPARATE_PROC',bool)   ← mc configuration (V8.7 and later)
OYboolconfiguration file (deprecated)
-oYboolcommand line (deprecated)

The argument bool is of type Boolean. If bool is missing, the default is true (fork). The default for the mc technique is false (don’t fork). If the entire ForkEachJob option is missing, the default is also false (don’t fork).

If the ForkEachJob option is set (true), there is a fork(2) to start processing of the queue, and then another fork(2) to process each message in the queue. If the ForkEachJob option is not set (false), only the initial fork(2) takes place, greatly improving the efficiency of a queue run. For example, a single process (as with ForkEachJob false) retains information about down hosts and so does not waste time trying to connect again for subsequent mail to the same host during the current queue run. For all modern machines, the ForkEachJob option should be false.

Note that V8.12 has further reduced the need to ...

Get sendmail, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.