83 lines
1.6 KiB
Bash
Executable File
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
|