svchelper/app/bin/start
2024-04-23 15:13:08 +02:00

40 lines
980 B
Bash

#!/usr/bin/env bash
"$APP" onearg "$@"
"$APP" exist "$1"
source "$APP" service_env "$1"
for SERVICE in "${SERVICE_REQUIRE[@]}"; do
"$APP" start "$SERVICE"
done
echo "[$APP_NAME] Starting '$1' ..."
if "$APP" service_running "$1"; then
echo "Service is already running."
exit 0
fi
if [ -e "$APP_SERVICES/$1/start" ]; then
source "$APP_SERVICES/$1/start"
fi
if [ "$SERVICE_RUN" = "" ]; then
exit 0
fi
if [ "$SERVICE_DEBUG" = "1" ]; then
SERVICE_RUN_RAW="cd \"$SERVICE_CD\"; echo \"* pwd: \$PWD\"; exec ${SERVICE_RUN//"/\\"}"
echo "* bash: $SERVICE_RUN_RAW"
exec gosu "$SERVICE_USER" bash -c "$SERVICE_RUN_RAW"
else
SERVICE_RUN_RAW="cd \"$SERVICE_CD\"; exec ${SERVICE_RUN//"/\\"}"
if [ "$SERVICE_SCREEN" = "1" ]; then
screen -dmS "$SERVICE_SCREEN_NAME" gosu "$SERVICE_USER" bash -c "$SERVICE_RUN_RAW"
else
gosu "$SERVICE_USER" nohup bash -c "$SERVICE_RUN_RAW" > /dev/null 2>&1 &
fi
fi
if [ -e "$APP_SERVICES/$1/await" ]; then
source "$APP_SERVICES/$1/await"
fi