{
    "content": [
        {
            "type": "text",
            "text": "# SPAWN(8postfix) (man)\n\n**Summary:** spawn - Postfix external command spawner\n\n**Synopsis:** spawn [generic Postfix daemon options] commandattributes...\n\n## See Also\n\n- postconf(5)\n- master(8)\n- postlogd(8)\n- syslogd(8)\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **SYNOPSIS** (2 lines)\n- **DESCRIPTION** (8 lines)\n- **COMMAND ATTRIBUTE SYNTAX** (16 lines)\n- **BUGS** (5 lines)\n- **DIAGNOSTICS** (3 lines)\n- **SECURITY** (4 lines)\n- **CONFIGURATION PARAMETERS** (8 lines)\n- **RESOURCE AND RATE CONTROL** (4 lines)\n- **MISCELLANEOUS** (47 lines)\n- **SEE ALSO** (5 lines)\n- **LICENSE** (16 lines)\n\n## Full Content\n\n### NAME\n\nspawn - Postfix external command spawner\n\n### SYNOPSIS\n\nspawn [generic Postfix daemon options] commandattributes...\n\n### DESCRIPTION\n\nThe spawn(8) daemon provides the Postfix equivalent of inetd.  It listens on a port as speci‐\nfied in the Postfix master.cf file and spawns an external command whenever  a  connection  is\nestablished.  The connection can be made over local IPC (such as UNIX-domain sockets) or over\nnon-local IPC (such as TCP sockets).  The command´s standard input, output and error  streams\nare connected directly to the communication endpoint.\n\nThis daemon expects to be run from the master(8) process manager.\n\n### COMMAND ATTRIBUTE SYNTAX\n\nThe external command attributes are given in the master.cf file at the end of a service defi‐\nnition.  The syntax is as follows:\n\nuser=username (required)\n\nuser=username:groupname\nThe external command is executed with the rights of the specified username.  The soft‐\nware  refuses  to execute commands with root privileges, or with the privileges of the\nmail system owner. If groupname is specified, the corresponding group ID is  used  in‐\nstead of the group ID of username.\n\nargv=command... (required)\nThe command to be executed. This must be specified as the last command attribute.  The\ncommand is executed directly, i.e. without interpretation of shell meta characters  by\na shell command interpreter.\n\n### BUGS\n\nIn order to enforce standard Postfix process resource controls, the spawn(8) daemon runs only\none external command at a time.  As such, it presents a noticeable overhead by  wasting  pre‐\ncious  process resources. The spawn(8) daemon is expected to be replaced by a more structural\nsolution.\n\n### DIAGNOSTICS\n\nThe spawn(8) daemon reports abnormal child exits.  Problems are logged to syslogd(8) or post‐‐\nlogd(8).\n\n### SECURITY\n\nThis  program  needs  root  privilege  in order to execute external commands as the specified\nuser. It is therefore security sensitive.  However the spawn(8) daemon does not talk  to  the\nexternal command and thus is not vulnerable to data-driven attacks.\n\n### CONFIGURATION PARAMETERS\n\nChanges  to  main.cf are picked up automatically as spawn(8) processes run for only a limited\namount of time. Use the command \"postfix reload\" to speed up a change.\n\nThe text below provides only a parameter summary. See postconf(5) for more details  including\nexamples.\n\nIn the text below, transport is the first field of the entry in the master.cf file.\n\n### RESOURCE AND RATE CONTROL\n\ntransporttimelimit ($commandtimelimit)\nA transport-specific override for the commandtimelimit parameter value, where trans‐\nport is the master.cf name of the message delivery transport.\n\n### MISCELLANEOUS\n\nconfigdirectory (see 'postconf -d' output)\nThe default location of the Postfix main.cf and master.cf configuration files.\n\ndaemontimeout (18000s)\nHow much time a Postfix daemon process may take to handle a request before it is  ter‐\nminated by a built-in watchdog timer.\n\nexportenvironment (see 'postconf -d' output)\nThe  list  of  environment variables that a Postfix process will export to non-Postfix\nprocesses.\n\nipctimeout (3600s)\nThe time limit for sending or receiving information  over  an  internal  communication\nchannel.\n\nmailowner (postfix)\nThe UNIX system account that owns the Postfix queue and most Postfix daemon processes.\n\nmaxidle (100s)\nThe  maximum  amount of time that an idle Postfix daemon process waits for an incoming\nconnection before terminating voluntarily.\n\nmaxuse (100)\nThe maximal number of incoming connections that a Postfix daemon process will  service\nbefore terminating voluntarily.\n\nprocessid (read-only)\nThe process ID of a Postfix command or daemon process.\n\nprocessname (read-only)\nThe process name of a Postfix command or daemon process.\n\nqueuedirectory (see 'postconf -d' output)\nThe location of the Postfix top-level queue directory.\n\nsyslogfacility (mail)\nThe syslog facility of Postfix logging.\n\nsyslogname (see 'postconf -d' output)\nA  prefix  that is prepended to the process name in syslog records, so that, for exam‐\nple, \"smtpd\" becomes \"prefix/smtpd\".\n\nAvailable in Postfix 3.3 and later:\n\nservicename (read-only)\nThe master.cf service name of a Postfix daemon process.\n\n### SEE ALSO\n\npostconf(5), configuration parameters\nmaster(8), process manager\npostlogd(8), Postfix logging\nsyslogd(8), system logging\n\n### LICENSE\n\nThe Secure Mailer license must be distributed with this software.\n\nAUTHOR(S)\nWietse Venema\nIBM T.J. Watson Research\nP.O. Box 704\nYorktown Heights, NY 10598, USA\n\nWietse Venema\nGoogle, Inc.\n111 8th Avenue\nNew York, NY 10011, USA\n\n\n\nSPAWN(8postfix)\n\n"
        }
    ],
    "structuredContent": {
        "command": "SPAWN",
        "section": "8postfix",
        "mode": "man",
        "summary": "spawn - Postfix external command spawner",
        "synopsis": "spawn [generic Postfix daemon options] commandattributes...",
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "postconf",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/postconf/5/json"
            },
            {
                "name": "master",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/master/8/json"
            },
            {
                "name": "postlogd",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/postlogd/8/json"
            },
            {
                "name": "syslogd",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/syslogd/8/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 8,
                "subsections": []
            },
            {
                "name": "COMMAND ATTRIBUTE SYNTAX",
                "lines": 16,
                "subsections": []
            },
            {
                "name": "BUGS",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "DIAGNOSTICS",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "SECURITY",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "CONFIGURATION PARAMETERS",
                "lines": 8,
                "subsections": []
            },
            {
                "name": "RESOURCE AND RATE CONTROL",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "MISCELLANEOUS",
                "lines": 47,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "LICENSE",
                "lines": 16,
                "subsections": []
            }
        ]
    }
}