home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Previous Section Next Section

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=bool              configuration file (V8.7 and later) 
-OForkEachJob=bool              command line (V8.7 and later) 
define(`confSEPARATE_PROC',bool)    mc configuration (V8.7 and later) 
OYbool                          configuration file (deprecated) 
-oYbool                         command 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, 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 set this option because V8.12 sendmail has greatly improved memory management.

The ForkEachJob option is not safe. If specified from the command line, it can cause sendmail to relinquish its special privileges.

    Previous Section Next Section