Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue #10473 - Better warnings in jetty.sh on filesystem permission issues #10605

Merged
merged 4 commits into from
Sep 28, 2023
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 71 additions & 30 deletions jetty-home/src/main/resources/bin/jetty.sh
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,13 @@ started()
local STATEFILE=$1
local PIDFILE=$2
local STARTTIMEOUT=$3

if (( DEBUG )) ; then
echo "Looking for $STATEFILE"
echo -n "State Parent Directory: "
ls -lad $(dirname $STATEFILE)
fi

# wait till timeout to see "STARTED" in state file, needs --module=state as argument
for ((T = 0; T < $STARTTIMEOUT; T++))
do
Expand All @@ -162,6 +169,11 @@ started()
done
(( DEBUG )) && echo "Timeout $STARTTIMEOUT expired waiting for start state from $STATEFILE"
echo " timeout"
if running "$PIDFILE" ; then
echo "INFO: Server process is running"
else
echo "** ERROR: Server process is NOT running"
fi
return 1;
}

Expand All @@ -173,7 +185,7 @@ pidKill()
if [ -r $PIDFILE ] ; then
local PID=$(tail -1 "$PIDFILE")
if [ -z "$PID" ] ; then
echo "ERROR: no pid found in $PIDFILE"
echo "** ERROR: no pid found in $PIDFILE"
return 1
fi

Expand Down Expand Up @@ -204,7 +216,6 @@ pidKill()
fi
}


readConfig()
{
(( DEBUG )) && echo "Reading $1.."
Expand All @@ -213,26 +224,25 @@ readConfig()

dumpEnv()
{
echo "JAVA = $JAVA"
echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}"
echo "JETTY_HOME = $JETTY_HOME"
echo "JETTY_BASE = $JETTY_BASE"
echo "START_D = $START_D"
echo "START_INI = $START_INI"
echo "JETTY_START = $JETTY_START"
echo "JETTY_CONF = $JETTY_CONF"
echo "JETTY_ARGS = ${JETTY_ARGS[*]}"
echo "JETTY_RUN = $JETTY_RUN"
echo "JETTY_PID = $JETTY_PID"
echo "JETTY_START_LOG = $JETTY_START_LOG"
echo "JETTY_STATE = $JETTY_STATE"
echo "JETTY_START_TIMEOUT = $JETTY_START_TIMEOUT"
echo "JETTY_SYS_PROPS = $JETTY_SYS_PROPS"
echo "RUN_ARGS = ${RUN_ARGS[*]}"
echo "JAVA = $JAVA"
echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}"
echo "JETTY_HOME = $JETTY_HOME"
echo "JETTY_BASE = $JETTY_BASE"
echo "START_D = $START_D"
echo "START_INI = $START_INI"
echo "JETTY_START = $JETTY_START"
echo "JETTY_CONF = $JETTY_CONF"
echo "JETTY_ARGS = ${JETTY_ARGS[*]}"
echo "JETTY_RUN = $JETTY_RUN"
echo "JETTY_PID = $JETTY_PID"
echo "JETTY_START_LOG = $JETTY_START_LOG"
echo "JETTY_STATE = $JETTY_STATE"
echo "JETTY_START_TIMEOUT = $JETTY_START_TIMEOUT"
echo "JETTY_SYS_PROPS = $JETTY_SYS_PROPS"
echo "RUN_ARGS = ${RUN_ARGS[*]}"
}



##################################################
# Get the action & configs
##################################################
Expand Down Expand Up @@ -358,7 +368,15 @@ fi
if [ -z "$JETTY_RUN" ]
then
JETTY_RUN=$(findDirectory -w /var/run /usr/var/run $JETTY_BASE /tmp)/jetty
[ -d "$JETTY_RUN" ] || mkdir $JETTY_RUN
fi

if [ ! -d "$JETTY_RUN" ] ; then
if ! mkdir $JETTY_RUN
then
echo "** ERROR: Unable to create directory: $JETTY_RUN"
echo " Correct issues preventing use of \$JETTY_RUN and try again."
joakime marked this conversation as resolved.
Show resolved Hide resolved
exit 1
fi
fi

#####################################################
Expand Down Expand Up @@ -495,6 +513,11 @@ RUN_ARGS=($JETTY_SYS_PROPS ${JETTY_DRY_RUN[@]})

if (( DEBUG ))
then
if expr "${RUN_ARGS[*]}" : '.*/etc/console-capture.xml.*' > /dev/null
then
echo "WARNING: Disable console-capture module for best DEBUG results"
fi
echo "IDs are $(id)"
dumpEnv
fi

Expand All @@ -503,13 +526,27 @@ fi
##################################################
case "$ACTION" in
start)
echo -n "Starting Jetty: "

if (( NO_START )); then
echo "Not starting ${NAME} - NO_START=1";
exit
fi

if ! touch "$JETTY_PID"
sbordet marked this conversation as resolved.
Show resolved Hide resolved
then
echo "** ERROR: Unable to touch file: $JETTY_PID"
echo " Correct issues preventing use of \$JETTY_PID and try again."
exit 1
fi

if ! touch "$JETTY_STATE"
then
echo "** ERROR: Unable to touch file: $JETTY_STATE"
echo " Correct issues preventing use of \$JETTY_STATE and try again."
exit 1
fi

echo -n "Starting Jetty: "

# Startup from a service file
if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1
then
Expand All @@ -519,15 +556,16 @@ case "$ACTION" in
CH_USER="--chuid $JETTY_USER"
fi

echo ${RUN_ARGS[@]} start-log-file="$JETTY_START_LOG" | xargs start-stop-daemon \
echo ${RUN_ARGS[@]} --start-log-file="$JETTY_START_LOG" | xargs start-stop-daemon \
--start $CH_USER \
--pidfile "$JETTY_PID" \
--chdir "$JETTY_BASE" \
--background \
--output "${JETTY_RUN}/start-stop.log"
--make-pidfile \
--startas "$JAVA" \
--

(( DEBUG )) && echo "Starting: start-stop-daemon usage"
joakime marked this conversation as resolved.
Show resolved Hide resolved
else

if running $JETTY_PID
Expand All @@ -545,16 +583,19 @@ case "$ACTION" in
SU_SHELL="-s $JETTY_SHELL"
fi

touch "$JETTY_PID"
chown "$JETTY_USER" "$JETTY_PID"
su - "$JETTY_USER" $SU_SHELL -c "
cd \"$JETTY_BASE\"
echo ${RUN_ARGS[*]} start-log-file=\"$JETTY_START_LOG\" | xargs ${JAVA} > /dev/null &
disown \$!"
echo ${RUN_ARGS[*]} --start-log-file=\"$JETTY_START_LOG\" | xargs ${JAVA} > /dev/null &
PID=\$!
disown \$PID"
(( DEBUG )) && echo "Starting: su shell (w/user) on PID $PID"
else
# Startup if not switching users
echo ${RUN_ARGS[*]} | xargs ${JAVA} > /dev/null &
disown $!
echo ${RUN_ARGS[*]} --start-log-file="${JETTY_START_LOG}" | xargs ${JAVA} > /dev/null &
PID=$!
disown $PID
(( DEBUG )) && echo "Starting: java command on PID $PID"
fi

fi
Expand Down Expand Up @@ -592,7 +633,7 @@ case "$ACTION" in
else
# Stop from a non-service path
if [ ! -r "$JETTY_PID" ] ; then
echo "ERROR: no pid found at $JETTY_PID"
echo "** ERROR: no pid found at $JETTY_PID"
exit 1
fi

Expand Down