33#
44# Java Server startscript
55#
6- # ver 3.01
6+ # ver 3.1
77#
88# ########################
99
@@ -15,7 +15,7 @@ YELLOW='\033[1;33m'
1515
1616# Some helper string. Don't edit them!
1717PARAM2=$2
18- VERSION=3.0
18+ VERSION=3.1
1919
2020# ########################################################################### Checking Config files ###############################
2121
9797
9898start (){
9999 # start script
100- rm $SZERVER .pid.old 2> /dev/null
101- printf " ${GREEN} "
102- printf " Starting $SZERVER server in background ...\n"
103- SRVCMD=" $CMD $SZERVER .jar $SRVPARAM >$SZERVER .log &"
104- eval " $SRVCMD "
105- echo $! > $SZERVER .pid
106- # java -Xms1024m -Xmx1024m -Dfile.encoding=UTF-8 -jar $SZERVER.jar $SRVPARAM >$SZERVER.log & echo $! > $SZERVER.pid
107- printf " PID: "
108- cat $SZERVER .pid
109- printf " ${WHITE} \n"
100+ if ! chkrun; then
101+ rm $SZERVER .pid.old 2> /dev/null
102+ printf " ${GREEN} "
103+ printf " Starting $SZERVER server in background ...\n"
104+ SRVCMD=" $CMD $SZERVER .jar $SRVPARAM >$SZERVER .log &"
105+ eval " $SRVCMD "
106+ echo $! > $SZERVER .pid
107+ # java -Xms1024m -Xmx1024m -Dfile.encoding=UTF-8 -jar $SZERVER.jar $SRVPARAM >$SZERVER.log & echo $! > $SZERVER.pid
108+ printf " PID: "
109+ cat $SZERVER .pid
110+ else
111+ printf " ${GREEN} $SZERVER server is running already with PID: "
112+ cat $SZERVER .pid
113+ printf " .\nNot starting it again."
114+ fi
115+ printf " ${WHITE} \n"
110116}
111117
112118debug (){
113- SRVCMD=" $CMD $SZERVER .jar"
114- eval " $SRVCMD "
119+ if ! chkrun; then
120+ SRVCMD=" $CMD $SZERVER .jar"
121+ eval " $SRVCMD "
122+ else
123+ printf " ${GREEN} $SZERVER server is running already with PID: "
124+ cat $SZERVER .pid
125+ printf " Not starting it again."
126+ fi
127+ printf " ${WHITE} \n"
115128}
116129
117130stop () {
@@ -129,7 +142,7 @@ if [ -e /proc/$pid ]; then
129142 CMDLINE=` cat /proc/$pid /cmdline`
130143 SERVERNAME=$SZERVER .jar
131144 if [ -z " ${CMDLINE##* " java" * } " ] && [ -z " ${CMDLINE##* $SERVERNAME * } " ]; then
132- printf " ${GREEN} $SZERVER Server running, Stopping it.\n"
145+ printf " ${GREEN} $SZERVER Server is running, Stopping it.\n"
133146 sleep 1;
134147 kill -15 $pid ;
135148 printf " Wait up to $STOPSEC second(s) for stop server...\n"
@@ -208,7 +221,8 @@ help(){
208221 printf " ${LRED} start${GREEN} Start server in background\n"
209222 printf " ${LRED} stop${GREEN} Stop background running server\n"
210223 printf " ${LRED} restart${GREEN} Restart bacground running server\n"
211- printf " ${LRED} debug${GREEN} Start server in foreground. May stop with crtl+c\n"
224+ printf " ${LRED} debug${GREEN} Start server in foreground. May stop server with crtl+c\n"
225+ printf " ${LRED} status${GREEN} Checking server (running) status. \n"
212226 printf " ${LRED} log${GREEN} Show full log of server\n"
213227 printf " ${LRED} log t${GREEN} Tail of log file ( last $LOGLINES lines )\n"
214228 printf " ${LRED} log f${GREEN} Tail of log file and follow changes. Start with last $LOGLINES lines. Stop with ctrl+c key.\n"
@@ -240,7 +254,7 @@ help(){
240254}
241255
242256syntax (){
243- printf " ${WHITE} Syntax: ${GREEN} $0 ${WHITE} { ${LRED} start${WHITE} | ${LRED} stop${WHITE} | ${LRED} restart${WHITE} | ${LRED} debug${WHITE} | ${LRED} log${WHITE} [${LRED} f${WHITE} |${LRED} t${WHITE} ] | ${LRED} chkconfig${WHITE} | ${LRED} help${WHITE} | ${LRED} ver${WHITE} }\n"
257+ printf " ${WHITE} Syntax: ${GREEN} $0 ${WHITE} { ${LRED} start${WHITE} | ${LRED} stop${WHITE} | ${LRED} restart${WHITE} | ${LRED} debug${WHITE} | ${LRED} log${WHITE} | ${LRED} log ${WHITE} [${LRED} f${WHITE} |${LRED} t${WHITE} ] | ${LRED} chkconfig${WHITE} | ${LRED} help${WHITE} | ${LRED} ver${WHITE} }\n"
244258}
245259
246260version (){
@@ -249,7 +263,7 @@ version(){
249263 RELEASE=` curl --silent " https://api.github.com/repos/larryl79/Spigot-startscript/releases/latest" | grep ' "tag_name":' | sed -E ' s/.*"([^"]+)".*/\1/' `
250264 echo " Git release: ${GREEN} $RELEASE ${WHITE} "
251265 if [ $RELEASE \> $VERSION ]; then
252- printf " ${YELLOW} Warning: ${GREEN} You are not on a latest release, ${YELLOW} please update${GREEN} for new feauters and bugfies from github.\n"
266+ printf " ${YELLOW} Warning: ${GREEN} You are not on a latest release, ${YELLOW} please update${GREEN} for new feauters and bugfixes from github.\n"
253267 printf " \n"
254268 else
255269 printf " ${GREEN} You are on a latest release.\n"
@@ -273,6 +287,38 @@ chkconfig(){
273287 printf " \n"
274288}
275289
290+ chkrun (){
291+
292+ if [ -e $SZERVER .pid ]; then
293+ pid=` cat $SZERVER .pid`
294+
295+ if [ -e /proc/$pid ]; then
296+ CMDLINE=` cat /proc/$pid /cmdline`
297+ SERVERNAME=$SZERVER .jar
298+ if [ -z " ${CMDLINE##* " java" * } " ] && [ -z " ${CMDLINE##* $SERVERNAME * } " ]; then
299+ return 0
300+ else
301+ return 1
302+ fi
303+ fi
304+
305+ else
306+ # printf "${LRED}Error:${GREEN} Pid file missing can't stop server or not running.\nExitig.\n"
307+ return 1
308+ fi
309+
310+ }
311+
312+ status (){
313+ if chkrun; then
314+ printf " ${GREEN} $SZERVER Server is running with PID: "
315+ cat $SZERVER .pid
316+ else
317+ printf " ${GREEN} Server not runnning.\n"
318+ fi
319+ printf " ${WHITE} "
320+ }
321+
276322 case " $1 " in
277323 start)
278324 start
@@ -284,6 +330,9 @@ chkconfig(){
284330 stop
285331 start
286332 ;;
333+ status)
334+ status
335+ ;;
287336 debug)
288337 debug
289338 ;;
0 commit comments