Administration

Manage the HAProxy Enterprise service

This page applies to:

  • HAProxy Enterprise - all versions

This page describes how to manage the load balancer service.

Get the HAProxy Enterprise version Jump to heading

To see the installed version of the software, pass the -v flag to the hapee-lb program. Below, we show the command to use, depending on your environment.

For Linux, call the hapee-lb command with the -v argument.

nix
/opt/hapee-3.4/sbin/hapee-lb -v
nix
/opt/hapee-3.4/sbin/hapee-lb -v

For Docker, use the docker exec command to call the hapee-lb command with the -v argument.

nix
sudo docker exec hapee-3.4 /opt/hapee-3.4/sbin/hapee-lb -v
nix
sudo docker exec hapee-3.4 /opt/hapee-3.4/sbin/hapee-lb -v

The output shows the version, release status, changelog URL, and current operating system.

output
text
HAProxy version 3.4.0-1.0.0-375.869 2026/08/26 - https://haproxy.org/
Status: stable branch - will stop receiving fixes around ...
Known bugs: https://www.haproxy.com/documentation/haproxy-config...
Running on: Linux 6.1.0-29-amd64 ...
output
text
HAProxy version 3.4.0-1.0.0-375.869 2026/08/26 - https://haproxy.org/
Status: stable branch - will stop receiving fixes around ...
Known bugs: https://www.haproxy.com/documentation/haproxy-config...
Running on: Linux 6.1.0-29-amd64 ...

Start the service Jump to heading

HAProxy Enterprise runs as a service. If stopped, you can start it by calling the following command, depending on your environment.

For Linux, call the systemctl start command.

nix
sudo systemctl start hapee-3.4-lb
nix
sudo systemctl start hapee-3.4-lb

This command returns no output, but you can get the service’s status.

For Docker, the command to use depends on your version.

  • For HAProxy Enterprise 3.4r1 and newer, call the gopherd start command.

    nix
    sudo docker exec hapee-3.4 /usr/local/bin/gopherd start haproxy
    nix
    sudo docker exec hapee-3.4 /usr/local/bin/gopherd start haproxy

    The output shows that HAProxy Enterprise is running.

    output
    text
    haproxy: running (pid 101)
    output
    text
    haproxy: running (pid 101)
  • For HAProxy Enterprise 3.3r1 and older, there isn’t a start command. The service always restarts automatically when stopped.

Stop the service Jump to heading

You can stop the HAProxy Enterprise service by calling the following command, depending on your environment.

For Linux, call the systemctl stop command.

nix
sudo systemctl stop hapee-3.4-lb
nix
sudo systemctl stop hapee-3.4-lb

This command returns no output, but you can get the service’s status.

For Docker, the command to use depends on your version.

  • For HAProxy Enterprise 3.4r1 and newer, call the gopherd stop command.

    nix
    sudo docker exec hapee-3.4 /usr/local/bin/gopherd stop haproxy
    nix
    sudo docker exec hapee-3.4 /usr/local/bin/gopherd stop haproxy

    The output shows that HAProxy Enterprise has stopped.

    output
    text
    haproxy: stopped
    output
    text
    haproxy: stopped
  • For HAProxy Enterprise 3.3r1 and older, call the s6-svc command with the -1 argument. The -1 argument sends a SIGUSR1 signal to the HAProxy Enterprise container. Upon receiving the signal, the load balancer unbinds its listening ports so it won’t accept any additional connections, but it will continue processing existing connections until all connections close. After all connections have closed, the load balancer process terminates gracefully.

    nix
    sudo docker exec hapee-3.3 s6-svc -1 /var/run/s6/services/haproxy
    nix
    sudo docker exec hapee-3.3 s6-svc -1 /var/run/s6/services/haproxy

    This command returns no output, but the sudo docker logs hapee-3.3 command shows the status:

    output
    text
    Exiting Master process...
    soft-stop running for too long, performing a hard-stop.
    Proxy GLOBAL hard-stopped (1 remaining conns will be closed).
    Current worker (265) exited with code 0 (Exit)
    All workers exited. Exiting... (0)
    ...
    Initializing new worker (308)
    output
    text
    Exiting Master process...
    soft-stop running for too long, performing a hard-stop.
    Proxy GLOBAL hard-stopped (1 remaining conns will be closed).
    Current worker (265) exited with code 0 (Exit)
    All workers exited. Exiting... (0)
    ...
    Initializing new worker (308)

    The service will automatically restart when stopped.

Restart the service Jump to heading

To restart the HAProxy Enterprise service, call the following command, depending on your environment. Note that performing a hard restart in this way may result in dropped traffic.

For Linux, call the systemctl restart command.

nix
sudo systemctl restart hapee-3.4-lb
nix
sudo systemctl restart hapee-3.4-lb

This command returns no output, but you can get the service’s status.

For Docker, the command to use depends on your version.

  • For HAProxy Enterprise 3.4r1 and newer, call the gopherd restart command.

    nix
    sudo docker exec hapee-3.4 /usr/local/bin/gopherd restart haproxy
    nix
    sudo docker exec hapee-3.4 /usr/local/bin/gopherd restart haproxy

    The output shows that a restart has been scheduled.

    output
    text
    haproxy: restart scheduled
    output
    text
    haproxy: restart scheduled
  • For HAProxy Enterprise 3.3r1 and older, call the s6-svc command with the -t argument. The -t argument sends a SIGTERM signal to the HAProxy Enterprise container. When the load balancer receives the SIGTERM signal, it doesn’t shut down gracefully, but rather, it immediately terminates and closes all established connections before restarting the service.

    nix
    sudo docker exec hapee-3.3 s6-svc -t /var/run/s6/services/haproxy
    nix
    sudo docker exec hapee-3.3 s6-svc -t /var/run/s6/services/haproxy

    This command returns no output, but the sudo docker logs hapee-3.3 command shows the status:

    output
    text
    haproxy-1 | [WARNING] (299) : Exiting Master process...
    haproxy-1 | [ALERT] (299) : Current worker (308) exited with code 143 (Terminated)
    haproxy-1 | [WARNING] (299) : All workers exited. Exiting... (0)
    ...
    haproxy-1 | [NOTICE] (341) : Initializing new worker (350)
    output
    text
    haproxy-1 | [WARNING] (299) : Exiting Master process...
    haproxy-1 | [ALERT] (299) : Current worker (308) exited with code 143 (Terminated)
    haproxy-1 | [WARNING] (299) : All workers exited. Exiting... (0)
    ...
    haproxy-1 | [NOTICE] (341) : Initializing new worker (350)

Reload the configuration Jump to heading

To reload the configuration without restarting the process, call the command in this section, depending on your environment.

When the load balancer performs a reload, it applies configuration changes immediately without interrupting existing connections. The load balancer can support graceful, no-impact reloads because of its master-worker architecture. When the load balancer starts, it starts a master process and a worker process. The master manages the worker, and it manages reloads. The worker validates the configuration and executes the load balancer application that processes traffic.

When you execute a reload command, systemd sends the SIGUSR2 signal to the master process, which causes it to re-execute itself. The master process sends the SIGUSR1 signal to workers to perform a soft stop and create new workers with the changed configuration. The old workers complete their existing connections before terminating. New connections go to the new workers. No connections are dropped.

Dynamic changes are configuration changes made to the load balancer process running in memory. These changes, applied using the HAProxy Runtime API, aren’t written to disk and don’t persist through a load balancer reload or restart. When the process terminates, the dynamic changes are lost. If you want these changes to be persistent, modify the configuration files on disk.

For Linux, call the systemctl reload command.

nix
sudo systemctl reload hapee-3.4-lb
nix
sudo systemctl reload hapee-3.4-lb

This command returns no output, but you can get the service’s status.

For Docker, the command to use depends on your version.

  • For HAProxy Enterprise 3.4r1 and newer, call the gopherd signal command with the USR2 signal.

    nix
    sudo docker exec hapee-3.4 /usr/local/bin/gopherd signal haproxy USR2
    nix
    sudo docker exec hapee-3.4 /usr/local/bin/gopherd signal haproxy USR2

    The output shows that the reload signal has been sent.

    output
    text
    haproxy: sent USR2
    output
    text
    haproxy: sent USR2
  • For HAProxy Enterprise 3.3r1 and older, call the s6-svc command with the -2 argument. The -2 argument sends a SIGUSR2 signal to the HAProxy Enterprise container, and when the load balancer receives the signal it will reload.

    nix
    sudo docker exec hapee-3.3 s6-svc -2 /var/run/s6/services/haproxy
    nix
    sudo docker exec hapee-3.3 s6-svc -2 /var/run/s6/services/haproxy

    This command returns no output, but the sudo docker logs hapee-3.3 command shows the status:

    output
    text
    Reloading HAProxy
    ...
    Initializing new worker (377)
    output
    text
    Reloading HAProxy
    ...
    Initializing new worker (377)

More tuning options:

  • Add hard-stop-after to your configuration to limit how long to wait for workers to finish active connections before forcing them to stop. It sets a maximum time to wait. You could use this to prevent long-running sessions from blocking the reload.
  • Add grace to your configuration to pause for a period of time before initiating the soft stop of workers. During this delay, you could send a notification of the pending reload.

Get the service’s status Jump to heading

Use the following command to see the service’s status, depending on your environment.

For Linux, call the systemctl status command.

nix
sudo systemctl status hapee-3.4-lb
nix
sudo systemctl status hapee-3.4-lb

The output shows that the service is active and running.

output
text
hapee-3.4-lb.service - HAPEE Load Balancer
Loaded: loaded (/lib/systemd/system/hapee-3.4-lb.service; enabled; preset: enabled)
Active: active (running) since Tue 2026-09-15 21:20:28 UTC; 34s ago
Process: 10417 ExecStartPre=/opt/hapee-3.4/sbin/hapef -Sp (code=exited, status=0/SUCCESS)
output
text
hapee-3.4-lb.service - HAPEE Load Balancer
Loaded: loaded (/lib/systemd/system/hapee-3.4-lb.service; enabled; preset: enabled)
Active: active (running) since Tue 2026-09-15 21:20:28 UTC; 34s ago
Process: 10417 ExecStartPre=/opt/hapee-3.4/sbin/hapef -Sp (code=exited, status=0/SUCCESS)

For Docker, the command to use depends on your version.

  • For HAProxy Enterprise 3.4r1 and newer, call the gopherd status command.

    nix
    sudo docker exec hapee-3.4 /usr/local/bin/gopherd status haproxy
    nix
    sudo docker exec hapee-3.4 /usr/local/bin/gopherd status haproxy

    The output shows that the service is running.

    output
    text
    haproxy: running (pid 143)
    output
    text
    haproxy: running (pid 143)
  • For HAProxy Enterprise 3.3r1 and older, there isn’t a command to get the status. You can call the sudo docker logs hapee-3.3 command to get status information.

See also Jump to heading

Do you have any suggestions on how we can improve the content of this page? Please leave feedback!