Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 Server Administration Documentation | 2025.2

# Server block

A server block defines settings and variables that apply only to the specified type of service:

Type | Meaning
--- | ---
`p4d` | P4 Server, also called P4 Server
`p4p` | P4 Proxy
`p4broker` | P4 Broker
`other` | Any other service

A server block is defined using the following syntax:

    server_type name
    {
       setting = value
       Environment
       {
           variable = value
       }
    }

The specified `name` name must refer to services of a given type, but the name can include different types of servers. This allows you to control or query groups of heterogeneous servers that share the same name.

For example, a configuration that defines p4d and proxy services using the name `main` can use a single command to stop p4d and proxy services without affecting any other services:

    $ p4dctl stop main

You can define the following variables within server blocks. `Owner` and `Execute` are required for all server types.

Setting | Meaning
--- | ---
`Owner` | The owner of the service. The service is started under the owner’s account and with their privileges. The user can also use `p4dctl` to manage the server they own. Required.
`Execute` | The path to the binary to execute when starting this server. Required.
`Args` | A string containing the arguments to be passed to the binary specified with `Execute`. The string must be quoted. For example: `Args = "-C1"` or `Args = "-u us_proxy -v lbr.stat.interval=300 -v proxy.monitor.level=3 -v proxy.monitor.interval=300"`
`Enabled` | Set to `FALSE` to disable the service and not start it with the `p4dctl start` command. Default: `TRUE`
`Umask` | An octal value specifying the `umask` to be applied to the child processes for this service. The default `umask` on most Linux/Unix systems is 022, which means all new files are readable by all users. Setting this variable to 077 ensures that the files created by this service are only accessible to the owner of the service.
`Prefix` | A string containing a prefix to apply when checkpointing the server or rotating the journal. This prefix is passed down to the relevant `p4d` command if needed. Default: none
`PrettyNames` | Set to `true` to have `p4dctl` format the names of the server processes it starts, in an informative way. In the following example, the `p4d` process is qualified with its host and port name when `PrettyNames` is set to true.
    PrettyNames=true
      perforce callto:21397%201%200%2010[21397 1  0 10]:48 ?  00:00:00 p4d
                                                 [blacksphere/1666]
    PrettyNames=false
      perforce callto:21725%201%200%2010[21725 1  0 10]:50 ?  00:00:00
                                                  /usr/sbin/p4d
Default: true

Your search for returned results