DOC: management: rework the Master CLI section

Rework the master CLI section the same way the "Unix Socket commands"
section is made, ordering the available keywords in the section.
This commit is contained in:
William Lallemand 2022-02-02 14:44:19 +01:00
parent 2454d6ef5b
commit af140ab2f5

View File

@ -31,6 +31,7 @@ Summary
9.2. Typed output format 9.2. Typed output format
9.3. Unix Socket commands 9.3. Unix Socket commands
9.4. Master CLI 9.4. Master CLI
9.4.1. Master CLI commands
10. Tricks for easier configuration management 10. Tricks for easier configuration management
11. Well-known traps to avoid 11. Well-known traps to avoid
12. Debugging and performance issues 12. Debugging and performance issues
@ -3623,87 +3624,93 @@ Example:
# haproxy -Ws -S /tmp/master-socket,uid,1000,gid,1000,mode,600 -f test1.cfg # haproxy -Ws -S /tmp/master-socket,uid,1000,gid,1000,mode,600 -f test1.cfg
# haproxy -W -S /tmp/master-socket,level,user -f test1.cfg # haproxy -W -S /tmp/master-socket,level,user -f test1.cfg
The master CLI introduces a 'show proc' command to surpervise the
processes:
Example: 9.4.1 Master CLI commands
--------------------------
$ echo 'show proc' | socat /var/run/haproxy-master.sock - @<[!]pid>
#<PID> <type> <reloads> <uptime> <version> The master CLI uses a special prefix notation to access the multiple
1162 master 5 [failed: 0] 0d00h02m07s 2.5-dev13 processes. This notation is easily identifiable as it begins by a @.
# workers
1271 worker 1 0d00h00m00s 2.5-dev13
# old workers
1233 worker 3 0d00h00m43s 2.0-dev3-6019f6-289
# programs
1244 foo 0 0d00h00m00s -
1255 bar 0 0d00h00m00s -
A @ prefix can be followed by a relative process number or by an exclamation
point and a PID. (e.g. @1 or @!1271). A @ alone could be use to specify the
master. Leaving processes are only accessible with the PID as relative process
number are only usable with the current processes.
In this example, the master has been reloaded 5 times but one of the old Examples:
worker is still running and survived 3 reloads. You could access the CLI of
this worker to understand what's going on.
When the prompt is enabled (via the "prompt" command), the context the CLI is $ socat /var/run/haproxy-master.sock readline
working on is displayed in the prompt. The master is identified by the "master" prompt
string, and other processes are identified with their PID. In case the last master> @1 show info; @2 show info
reload failed, the master prompt will be changed to "master[ReloadFailed]>" so [...]
that it becomes visible that the process is still running on the previous Process_num: 1
configuration and that the new configuration is not operational. Pid: 1271
[...]
Process_num: 2
Pid: 1272
[...]
master>
The master CLI uses a special prefix notation to access the multiple $ echo '@!1271 show info; @!1272 show info' | socat /var/run/haproxy-master.sock -
processes. This notation is easily identifiable as it begins by a @. [...]
A @ prefix can be followed by a relative process number or by an exclamation A prefix could be use as a command, which will send every next commands to
point and a PID. (e.g. @1 or @!1271). A @ alone could be use to specify the the specified process.
master. Leaving processes are only accessible with the PID as relative process
number are only usable with the current processes.
Examples: Examples:
$ socat /var/run/haproxy-master.sock readline $ socat /var/run/haproxy-master.sock readline
prompt prompt
master> @1 show info; @2 show info master> @1
[...] 1271> show info
Process_num: 1 [...]
Pid: 1271 1271> show stat
[...] [...]
Process_num: 2 1271> @
Pid: 1272 master>
[...]
master>
$ echo '@!1271 show info; @!1272 show info' | socat /var/run/haproxy-master.sock - $ echo '@1; show info; show stat; @2; show info; show stat' | socat /var/run/haproxy-master.sock -
[...] [...]
A prefix could be use as a command, which will send every next commands to prompt
the specified process. When the prompt is enabled (via the "prompt" command), the context the CLI is
working on is displayed in the prompt. The master is identified by the "master"
string, and other processes are identified with their PID. In case the last
reload failed, the master prompt will be changed to "master[ReloadFailed]>" so
that it becomes visible that the process is still running on the previous
configuration and that the new configuration is not operational.
Examples: reload
You can also reload the HAProxy master process with the "reload" command which
does the same as a `kill -USR2` on the master process, provided that the user
has at least "operator" or "admin" privileges.
$ socat /var/run/haproxy-master.sock readline Example:
prompt
master> @1
1271> show info
[...]
1271> show stat
[...]
1271> @
master>
$ echo '@1; show info; show stat; @2; show info; show stat' | socat /var/run/haproxy-master.sock - $ echo "reload" | socat /var/run/haproxy-master.sock stdin
[...]
You can also reload the HAProxy master process with the "reload" command which Note that a reload will close the connection to the master CLI.
does the same as a `kill -USR2` on the master process, provided that the user
has at least "operator" or "admin" privileges.
Example: show proc
The master CLI introduces a 'show proc' command to surpervise the
processe.
$ echo "reload" | socat /var/run/haproxy-master.sock stdin Example:
Note that a reload will close the connection to the master CLI. $ echo 'show proc' | socat /var/run/haproxy-master.sock -
#<PID> <type> <reloads> <uptime> <version>
1162 master 5 [failed: 0] 0d00h02m07s 2.5-dev13
# workers
1271 worker 1 0d00h00m00s 2.5-dev13
# old workers
1233 worker 3 0d00h00m43s 2.0-dev3-6019f6-289
# programs
1244 foo 0 0d00h00m00s -
1255 bar 0 0d00h00m00s -
In this example, the master has been reloaded 5 times but one of the old
worker is still running and survived 3 reloads. You could access the CLI of
this worker to understand what's going on.
10. Tricks for easier configuration management 10. Tricks for easier configuration management
---------------------------------------------- ----------------------------------------------