Files
codiki/src/main/bash/codiki.bash

83 lines
1.6 KiB
Bash
Executable File

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