|
|
@@ -3,7 +3,7 @@
|
|
|
# Server Management Script
|
|
|
# Author: Daniel Gibbs
|
|
|
# Website: http://danielgibbs.co.uk
|
|
|
-# Version: 050214
|
|
|
+# Version: 220614
|
|
|
|
|
|
#### Variables ####
|
|
|
|
|
|
@@ -41,6 +41,7 @@ engine="goldsource"
|
|
|
# Directorys
|
|
|
rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
selfname="$0"
|
|
|
+lockselfname=$(echo "${selfname}.lock"|sed 's/^\(.\{1\}\).\(.*\)/\1\2/')
|
|
|
filesdir="${rootdir}/serverfiles"
|
|
|
systemdir="${filesdir}/dod"
|
|
|
executabledir="${filesdir}"
|
|
|
@@ -253,7 +254,7 @@ else
|
|
|
while true; do
|
|
|
read -p "Do you want to start the server? [y/N]" yn
|
|
|
case $yn in
|
|
|
- [Yy]* ) fn_startserver;break;;
|
|
|
+ [Yy]* ) fn_startserver; break;;
|
|
|
[Nn]* ) break;;
|
|
|
* ) echo "Please answer yes or no.";;
|
|
|
esac
|
|
|
@@ -287,7 +288,7 @@ if [ ${tmuxwc} -eq 1 ]; then
|
|
|
while true; do
|
|
|
read -p "Would you like to stop ${servicename} while running the backup? [y/N]" yn
|
|
|
case $yn in
|
|
|
- [Yy]* ) fn_stopserver;break;;
|
|
|
+ [Yy]* ) fn_stopserver; break;;
|
|
|
[Nn]* ) break;;
|
|
|
* ) echo "Please answer yes or no.";;
|
|
|
esac
|
|
|
@@ -465,6 +466,12 @@ fn_monitorserver(){
|
|
|
fn_rootcheck
|
|
|
fn_syscheck
|
|
|
fn_autoip
|
|
|
+if [ ! -f ${lockselfname} ]; then
|
|
|
+ fn_printinfo "Monitoring ${servicename}: No lock file found: Monitor disabled"
|
|
|
+ sleep 1
|
|
|
+ echo -en "\n"
|
|
|
+ exit
|
|
|
+fi
|
|
|
fn_printdots "Monitoring ${servicename}: ${servername}"
|
|
|
sleep 1
|
|
|
fn_scriptlog "Monitoring ${servername}"
|
|
|
@@ -558,6 +565,8 @@ else
|
|
|
fn_printok "Stopping ${servicename}: ${servername}"
|
|
|
fn_scriptlog "Stopped ${servername}"
|
|
|
fi
|
|
|
+# Remove lock file
|
|
|
+rm -f ${lockselfname}
|
|
|
sleep 1
|
|
|
echo -en "\n"
|
|
|
}
|
|
|
@@ -583,6 +592,8 @@ if [ ${tmuxwc} -eq 1 ]; then
|
|
|
fn_scriptlog "${servername} is already running"
|
|
|
exit
|
|
|
fi
|
|
|
+# Create lock file
|
|
|
+lockfile -r 0 ${lockselfname}
|
|
|
cd "${executabledir}"
|
|
|
tmux new-session -d -s ${servicename} "${executable} ${parms}|tee -a '${consolelog}'"
|
|
|
sleep 1
|
|
|
@@ -617,7 +628,7 @@ echo "Ports the server is currently using."
|
|
|
echo ""
|
|
|
echo "DIRECTION DESCRIPTION PORT"
|
|
|
echo "INBOUND Game/RCON port ${port}"
|
|
|
-if [ "${engine}" = "source" ]; then
|
|
|
+if [ ! -z ${sourcetvport} ]; then
|
|
|
echo "INBOUND SourceTV port ${sourcetvport}"
|
|
|
fi
|
|
|
echo "OUTBOUND Client port ${clientport}"
|