Skip to content

Commit 04b861b

Browse files
committed
fixed doublestart possibility, added status param
1 parent 460d29f commit 04b861b

File tree

1 file changed

+67
-18
lines changed

1 file changed

+67
-18
lines changed

server.sh

Lines changed: 67 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
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!
1717
PARAM2=$2
18-
VERSION=3.0
18+
VERSION=3.1
1919

2020
############################################################################ Checking Config files ###############################
2121

@@ -97,21 +97,34 @@ fi
9797

9898
start(){
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

112118
debug(){
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

117130
stop() {
@@ -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

242256
syntax(){
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

246260
version(){
@@ -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

Comments
 (0)