Using multiple configuration files

You can modularize your configuration by creating multiple configuration files and directories and having include statements in your /etc/perforce/p4dtcl.conf configuration file.

  • To include a specific file, use the following syntax:

    include pathToFile
  • To include directories, use the following syntax:

    include directoryPath

    When including directories, p4dctl requires that names for files included end with the .conf extension.

The following example shows a multiple file configuration.

Environment
{
  PATH = /bin:/usr/bin:/usr/local/bin:/opt/perforce/sbin
}

include /etc/perforce/p4dctl.conf.d

The include reference causes Helix P4DCTL to pick up further configuration from any .conf files in the directory specified.

The sub-directory /etc/perforce/p4dctl.conf.d contains a file called README with example content for a server .conf file that can be placed in the directory. That directory will also contain template files where packages have been used for installation of other Helix Core products. These can be used as the basis for your own configuration.

Package Name Template File
helix-p4d p4d.template
helix-proxy p4p.template
helix-broker p4broker.template

The content of the template files for p4d, p4p, and is shown below with placeholders:

Placeholder Description
%NAME% service name
%ROOT% P4ROOT directory
%TARGET% P4TARGET Helix Server port for the proxy
%PORT% P4PORT that the service is listening on
#-------------------------------------------------------------------------------
# Template p4dctl configuration file for Helix Core Server
#-------------------------------------------------------------------------------
p4d %NAME%
{
    Owner = perforce
    Execute = /opt/perforce/sbin/p4d
    Umask = 077
    # Enabled by default.
    Enabled = true
    Environment
    {
        P4ROOT = %ROOT%
        P4SSLDIR = ssl
        PATH = /bin:/usr/bin:/usr/local/bin:/opt/perforce/bin:/opt/perforce/sbin
        # Enables nightly checkpoint routine
        # This should *not* be considered a complete backup solution
        MAINTENANCE = true
}
#-------------------------------------------------------------------------------
# Template p4dctl configuration file for  Helix Core Proxy
#-------------------------------------------------------------------------------
p4p %NAME%
{
    Owner = perforce
    Execute = /usr/sbin/p4p
    Umask = 077
    Environment
    {
        P4PCACHE=/opt/perforce/servers/%NAME%/
        P4TARGET=%TARGET%
        P4PORT=%PORT%
        PATH=/bin:/usr/bin:/usr/local/bin
    }
}
#-------------------------------------------------------------------------------
# Template p4dctl configuration file for Helix Core Broker
#-------------------------------------------------------------------------------
p4broker %NAME%
{
    Owner = perforce
    Execute = /usr/sbin/p4broker
    Umask = 077
    Environment
    {
        P4BROKEROPTIONS = "-c /opt/perforce/servers/%NAME%/broker.conf"
        P4SSLDIR = ssl
        PATH = /bin:/usr/bin:/usr/local/bin
    }
    # Enabled by default.
    Enabled = true
}