#!/bin/bash workspace='/opt/codiki' codikiScreenName='codiki' logFile='codiki-'`date '+%Y-%m-%d_%H-%M-%S'`'.log' screenRegex='codiki.\(([0-9]{2}/){2}[0-9]{4} [0-9]{2}(:[0-9]{2}){2}\)' screenRegexInteg='codiki-integ.\(([0-9]{2}/){2}[0-9]{4} [0-9]{2}(:[0-9]{2}){2}\)' # Colors RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' start() { screen -dmS "$codikiScreenName" java -jar $workspace/bin/codiki.jar &>> "$workspace/log/$logFile" if [ $? -ne 0 ] then echo "Service failed to start..." exit 1 fi } stop() { if [ $(status_by_screen) -eq 1 ] then screen -dr $codikiScreenName -X -S quit if [ $? -eq 0 ] then sleep 10 else echo "Service failed to stop..." exit 1 fi else echo "Service is not running." fi } status() { if [ $(status_by_screen) -eq 1 ] then echo -e " codiki.service - The Codiki web app server" echo -e " Active: ${GREEN}active${NC} (running)" echo '' else echo -e " codiki.service - The Codiki web app server" echo -e " Active: ${RED}inactive${NC} (dead)" echo '' fi } restart() { if [ $(status_by_screen) -eq 1 ] then stop fi start } status_by_screen() { echo $(screen -ls | egrep -o "$screenRegex" | wc -l) } case "$1" in start) start ;; stop) stop ;; status) status ;; restart) restart ;; *) echo "Usage: $0 {start|stop|status}" echo '' exit 1 esac exit 0