From e424606504cd4fb78e351465807574e93e72a6d8 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Tue, 6 Jul 2021 13:06:45 +0000 Subject: [PATCH] systemd/start-eddn-service: errors to stderr, make logs/ and pre-check pid file --- systemd/start-eddn-service | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/systemd/start-eddn-service b/systemd/start-eddn-service index 2f15d03..a30a7d5 100755 --- a/systemd/start-eddn-service +++ b/systemd/start-eddn-service @@ -9,13 +9,13 @@ EXIT_CL_ARGS=3 EXIT_SERVICE_ALREADY_RUNNING=4 usage() { - echo "Usage: $(basename $0) ( live | beta | dev ) ( gateway | monitor | relay ) [ --from-source [ --background ] ]" + echo "Usage: $(basename $0) ( live | beta | dev ) ( gateway | monitor | relay ) [ --from-source [ --background ] ]" >2 } if [ -z "${1}" ]; then usage - echo "No EDDN environment specified." + echo "No EDDN environment specified." >2 exit ${EXIT_CL_ARGS} fi EDDN_ENV="${1}" @@ -23,7 +23,7 @@ EDDN_ENV="${1}" if [ -z "${2}" ]; then usage - echo "No EDDN service specified." + echo "No EDDN service specified." >2 exit ${EXIT_CL_ARGS} fi SERVICE="${2}" @@ -33,7 +33,7 @@ then if [ "${3}" != "--from-source" ]; then usage - echo "Un-recognised argument: ${3}" + echo "Un-recognised argument: ${3}" >2 exit ${EXIT_CL_ARGS} fi FROM_SOURCE="1" @@ -42,7 +42,7 @@ then if [ "${4}" != "--background" ]; then usage - echo "Un-recognised argument: ${4}" + echo "Un-recognised argument: ${4}" >2 fi BACKGROUND=1 fi @@ -58,10 +58,11 @@ cd ${EXEC_PATH} # Bring in some common configuration if [ ! -f "eddn_${EDDN_ENV}_config" ]; then - echo "eddn_${EDDN_ENV}_config is missing from $(pwd)" + echo "eddn_${EDDN_ENV}_config is missing from $(pwd)" >2 exit ${EXIT_CONFIG_MISSING} fi . "./eddn_${EDDN_ENV}_config" +mkdir -p "${LOG_DIR}" # Use the python venv . "${PYTHON_VENV}/bin/activate" @@ -72,14 +73,17 @@ then # From install if [ ! -f "${PYTHON_VENV}/bin/eddn-${SERVICE}" ]; then - echo "${SERVICE} is missing from ${PYTHON_VENV}/bin" + echo "${SERVICE} is missing from ${PYTHON_VENV}/bin" >2 exit ${EXIT_SERVICE_BIN_MISSING} fi - if ps -C python $(cat "${LOG_DIR}/${SERVICE}.pid") > /dev/null 2>&1; + if [ -f "${LOG_DIR}/${SERVICE}.pid" ]; then - echo "${SERVICE}: already running as PID $(cat "${LOG_DIR}/${SERVICE}.pid")" - exit ${EXIT_SERVICE_ALREADY_RUNNING} + if ps -C python $(cat "${LOG_DIR}/${SERVICE}.pid") > /dev/null 2>&1; + then + echo "${SERVICE}: already running as PID $(cat "${LOG_DIR}/${SERVICE}.pid")" >2 + exit ${EXIT_SERVICE_ALREADY_RUNNING} + fi fi ${PYTHON_VENV}/bin/eddn-${SERVICE} --config "${CONFIG_OVERRIDE}" >> "${LOG_DIR}/${SERVICE}.log" 2>&1 & @@ -103,7 +107,7 @@ else then if ps -C python $(cat "${LOG_DIR}/${SERVICE}.pid") > /dev/null 2>&1; then - echo "${SERVICE}: already running as PID $(cat "${LOG_DIR}/${SERVICE}.pid")" + echo "${SERVICE}: already running as PID $(cat "${LOG_DIR}/${SERVICE}.pid")" >2 exit ${EXIT_SERVICE_ALREADY_RUNNING} fi fi