From: William Lallemand Date: Wed, 2 Feb 2022 13:44:19 +0000 (+0100) Subject: DOC: management: rework the Master CLI section X-Git-Tag: v2.6-dev2~212 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af140ab2f54ae68aecdb4fbefa01d0cd9806c17c;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/doc/management.txt b/doc/management.txt index 5bcdd17779..3d569e6ed6 100644 --- a/doc/management.txt +++ b/doc/management.txt @@ -31,6 +31,7 @@ Summary 9.2. Typed output format 9.3. Unix Socket commands 9.4. Master CLI +9.4.1. Master CLI commands 10. Tricks for easier configuration management 11. Well-known traps to avoid 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 -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 - - # - 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. - -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. - -The master CLI uses a special prefix notation to access the multiple -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 -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. - -Examples: - - $ socat /var/run/haproxy-master.sock readline - prompt - master> @1 show info; @2 show info - [...] - Process_num: 1 - Pid: 1271 - [...] - Process_num: 2 - Pid: 1272 - [...] - master> - - $ echo '@!1271 show info; @!1272 show info' | socat /var/run/haproxy-master.sock - - [...] - -A prefix could be use as a command, which will send every next commands to -the specified process. - -Examples: - - $ socat /var/run/haproxy-master.sock readline - 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 - - [...] - -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. +@<[!]pid> + The master CLI uses a special prefix notation to access the multiple + processes. This notation is easily identifiable as it begins by a @. -Example: + 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. + + Examples: + + $ socat /var/run/haproxy-master.sock readline + prompt + master> @1 show info; @2 show info + [...] + Process_num: 1 + Pid: 1271 + [...] + Process_num: 2 + Pid: 1272 + [...] + master> + + $ echo '@!1271 show info; @!1272 show info' | socat /var/run/haproxy-master.sock - + [...] + + A prefix could be use as a command, which will send every next commands to + the specified process. + + Examples: - $ echo "reload" | socat /var/run/haproxy-master.sock stdin + $ socat /var/run/haproxy-master.sock readline + 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 - + [...] + +prompt + 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. + +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. -Note that a reload will close the connection to the master CLI. + Example: + + $ echo "reload" | socat /var/run/haproxy-master.sock stdin + + Note that a reload will close the connection to the master CLI. + +show proc + The master CLI introduces a 'show proc' command to surpervise the + processe. + + Example: + $ echo 'show proc' | socat /var/run/haproxy-master.sock - + # + 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 ----------------------------------------------