#!/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