Skip to content

Instantly share code, notes, and snippets.

@psyphyaudio
Forked from bluebycode/servicename.sh
Created August 2, 2024 06:26
Show Gist options
  • Select an option

  • Save psyphyaudio/432c36da9f9c57655d67e4d6372ca921 to your computer and use it in GitHub Desktop.

Select an option

Save psyphyaudio/432c36da9f9c57655d67e4d6372ca921 to your computer and use it in GitHub Desktop.

Revisions

  1. @bluebycode bluebycode revised this gist May 3, 2016. No changes.
  2. @bluebycode bluebycode revised this gist May 3, 2016. No changes.
  3. @bluebycode bluebycode created this gist Mar 30, 2016.
    79 changes: 79 additions & 0 deletions servicename.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,79 @@
    service="servicename"
    exe="Service.exe"
    mono=/usr/local/bin/mono
    logs_path=logs

    pid_file="/var/run/services/$service.pid"
    get_pid() {
    cat "$pid_file"
    }

    is_running() {
    [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
    }

    case "$1" in
    start)
    if is_running; then
    echo "Already started"
    else
    echo "Starting service room"
    nohup $mono $exe >> $logs_path/$service-`date +%Y-%m-%d`.log 2>&1 &
    echo $! > "$pid_file"
    if ! is_running; then
    echo "Unable to start, see logs/$service-`date +%Y-%m-%d`.log"
    exit 1
    fi
    fi
    ;;
    stop)
    if is_running; then
    echo -n "Stopping $name.."
    kill `get_pid`
    for i in {1..10}
    do
    if ! is_running; then
    break
    fi

    echo -n "."
    sleep 1
    done
    echo

    if is_running; then
    echo "Not stopped; may still be shutting down or shutdown may have failed"
    exit 1
    else
    echo "Stopped"
    if [ -f "$pid_file" ]; then
    rm "$pid_file"
    fi
    fi
    else
    echo "Not running"
    fi
    ;;
    restart)
    $0 stop
    if is_running; then
    echo "Unable to stop, will not attempt to start"
    exit 1
    fi
    $0 start
    ;;
    status)
    if is_running; then
    echo "Running"
    else
    echo "Stopped"
    exit 1
    fi
    ;;
    *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
    esac

    exit 0