Tools: improved detection of unitd control socket.

Now unitc obtains the path to the unitd binary from information
contained in the unitd: main process. If unitd was started with an
explicit path then that path will be used to obtain the default
control socket, instead of using the unitd binary in $PATH.
This commit is contained in:
Liam Crilly
2023-02-27 14:25:58 +00:00
parent 5ed6eae718
commit bbeccabe0a

View File

@@ -43,7 +43,7 @@ while [ $# -gt 0 ]; do
;; ;;
*) *)
if [ -r $1 ]; then if [ -f $1 ] && [ -r $1 ]; then
CONF_FILES+=($1) CONF_FILES+=($1)
elif [ "${1:0:1}" = "/" ] || [ "${1:0:4}" = "http" ] && [ "$URI" = "" ]; then elif [ "${1:0:1}" = "/" ] || [ "${1:0:4}" = "http" ] && [ "$URI" = "" ]; then
URI=$1 URI=$1
@@ -121,9 +121,9 @@ if [ $REMOTE -eq 0 ]; then
if [ -r /tmp/${0##*/}.$PID.env ]; then if [ -r /tmp/${0##*/}.$PID.env ]; then
source /tmp/${0##*/}.$PID.env source /tmp/${0##*/}.$PID.env
else else
# Check we have unitd in $PATH (and all the other tools we will need) # Check we have all the tools we will need (that we didn't already use)
# #
MISSING=$(hash unitd curl ps grep tr cut sed tail sleep 2>&1 | cut -f4 -d: | tr -d '\n') MISSING=$(hash curl tr cut sed tail sleep 2>&1 | cut -f4 -d: | tr -d '\n')
if [ "$MISSING" != "" ]; then if [ "$MISSING" != "" ]; then
echo "${0##*/}: ERROR: cannot find$MISSING: please install or add to \$PATH" echo "${0##*/}: ERROR: cannot find$MISSING: please install or add to \$PATH"
exit 1 exit 1
@@ -131,10 +131,10 @@ if [ $REMOTE -eq 0 ]; then
# Get control address # Get control address
# #
PARAMS=$(ps $PID | grep unitd | cut -f2- -dv | tr '[]' ' ' | cut -f4- -d ' ' | sed -e 's/ --/\n--/g') PARAMS=$(ps $PID | grep unitd | cut -f2- -dv | tr '[]' ' ' | cut -f3- -d ' ' | sed -e 's/ --/\n--/g')
CTRL_ADDR=$(echo "$PARAMS" | grep '\--control' | cut -f2 -d' ') CTRL_ADDR=$(echo "$PARAMS" | grep '\--control' | cut -f2 -d' ')
if [ "$CTRL_ADDR" = "" ]; then if [ "$CTRL_ADDR" = "" ]; then
CTRL_ADDR=$(unitd --help | grep -A1 '\--control' | tail -1 | cut -f2 -d\") CTRL_ADDR=$(`echo "$PARAMS" | grep unitd` --help | grep -A1 '\--control' | tail -1 | cut -f2 -d\")
fi fi
# Prepare for network or Unix socket addressing # Prepare for network or Unix socket addressing