mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-13 03:18:28 +00:00
commit
fac83bfb82
@ -47,8 +47,8 @@ ark_ServerPVE=False
|
||||
ark_DifficultyOffset=1
|
||||
```
|
||||
|
||||
Your session name may contain special characters (eg. `!![EU]!! Aw&some ARK`) which could break the startup command.
|
||||
In this case you may want to comment out the `ark_SessionName` variable and define it inside your **GameUserSettings.ini** file.
|
||||
Your session name may not contain special characters (eg. `!![EU]!! Aw&some ARK`) as it could break the startup command.
|
||||
In this case you may want to comment out the `ark_SessionName` variable and define it inside your **GameUserSettings.ini** file instead.
|
||||
|
||||
You can override or add variables for a specific system user creating a file called `.arkmanager.cfg` in the home directory of the system user.
|
||||
|
||||
|
||||
101
tools/arkmanager
101
tools/arkmanager
@ -30,7 +30,6 @@ info=""
|
||||
thejob=""
|
||||
instver=""
|
||||
bnumber=""
|
||||
timestamp=$( date +%T )
|
||||
GREEN="\\033[1;32m"
|
||||
RED="\\033[1;31m"
|
||||
YELLOW="\\e[0;33m"
|
||||
@ -44,6 +43,13 @@ arkserverLog="arkserver.log" # here is logged the output of ShooterGameServer
|
||||
# functions
|
||||
#---------------------
|
||||
|
||||
#
|
||||
# timestamp
|
||||
#
|
||||
timestamp() {
|
||||
date +%T
|
||||
}
|
||||
|
||||
#
|
||||
# check configuration and report errors
|
||||
#
|
||||
@ -100,14 +106,6 @@ function checkForUpdate(){
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Set the new current version in a file
|
||||
#
|
||||
function setCurrentVersion(){
|
||||
cd "$arkserverroot"
|
||||
echo $bnumber > arkversion
|
||||
}
|
||||
|
||||
#
|
||||
# Check if the server need to be updated
|
||||
# Return 0 if update is needed, else return 1
|
||||
@ -156,6 +154,7 @@ function parseSteamACF(){
|
||||
function getCurrentVersion(){
|
||||
if [ -f "${arkserverroot}/steamapps/appmanifest_${appid}.acf" ]; then
|
||||
instver=`while read name val; do if [ "${name}" == "{" ]; then parseSteamACF "" "buildid"; break; fi; done <"${arkserverroot}/steamapps/appmanifest_${appid}.acf"`
|
||||
echo $instver > "$arkserverroot/arkversion"
|
||||
else
|
||||
instver=""
|
||||
fi
|
||||
@ -198,6 +197,38 @@ function isTheServerUp(){
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# run function
|
||||
#
|
||||
doRun() {
|
||||
arkserveropts=$serverMap
|
||||
|
||||
# bring in ark_... options
|
||||
for varname in "${!ark_@}"; do
|
||||
name="${varname#ark_}"
|
||||
val="${!varname}"
|
||||
|
||||
# Port is actually one higher than specified
|
||||
# i.e. specifying port 7777 will have the server
|
||||
# use port 7778
|
||||
if [ "$name" == "Port" ]; then
|
||||
(( val = val - 1 ))
|
||||
fi
|
||||
|
||||
if [ -n "$val" ]; then
|
||||
arkserveropts="${arkserveropts}?${name}=${val}"
|
||||
fi
|
||||
done
|
||||
|
||||
arkserveropts="${arkserveropts}?listen"
|
||||
# run the server in background
|
||||
echo "`timestamp`: start"
|
||||
# set max open files limit before we start the server
|
||||
ulimit -n $maxOpenFiles
|
||||
"$arkserverroot/$arkserverexec" "$arkserveropts"
|
||||
echo "`timestamp`: exited with status $?"
|
||||
}
|
||||
|
||||
#
|
||||
# start function
|
||||
#
|
||||
@ -208,32 +239,8 @@ doStart() {
|
||||
tput sc
|
||||
echo "The server is starting..."
|
||||
|
||||
arkserveropts=$serverMap
|
||||
|
||||
# bring in ark_... options
|
||||
for varname in "${!ark_@}"; do
|
||||
name="${varname#ark_}"
|
||||
val="${!varname}"
|
||||
|
||||
# Port is actually one higher than specified
|
||||
# i.e. specifying port 7777 will have the server
|
||||
# use port 7778
|
||||
if [ "$name" == "Port" ]; then
|
||||
(( val = val - 1 ))
|
||||
fi
|
||||
|
||||
if [ -n "$val" ]; then
|
||||
arkserveropts="${arkserveropts}?${name}=${val}"
|
||||
fi
|
||||
done
|
||||
|
||||
arkserveropts="${arkserveropts}?listen"
|
||||
# run the server in background
|
||||
echo "$timestamp: start" >> "$logdir/$arkserverLog"
|
||||
# set max open files limit before we start the server
|
||||
ulimit -n $maxOpenFiles
|
||||
nohup "$arkserverroot/$arkserverexec" "$arkserveropts" </dev/null >"$logdir/$arkserverLog" 2>&1 & # output of this command is logged
|
||||
echo "$timestamp: start" >> "$logdir/$arkmanagerLog"
|
||||
doRun </dev/null >>"$logdir/$arkserverLog" 2>&1 & # output of this command is logged
|
||||
echo "`timestamp`: start" >> "$logdir/$arkmanagerLog"
|
||||
tput rc; tput ed;
|
||||
echo "The server is now up"
|
||||
fi
|
||||
@ -252,7 +259,7 @@ doStop() {
|
||||
|
||||
tput rc; tput ed;
|
||||
echo "The server has been stopped"
|
||||
echo "$timestamp: stop" >> "$logdir/$arkmanagerLog"
|
||||
echo "`timestamp`: stop" >> "$logdir/$arkmanagerLog"
|
||||
else
|
||||
echo "The server is already stopped"
|
||||
fi
|
||||
@ -268,8 +275,7 @@ doInstall() {
|
||||
# install the server
|
||||
./$steamcmdexec +login anonymous +force_install_dir "$arkserverroot" +app_update $appid validate +quit
|
||||
# the current version should be the last version. We set our version
|
||||
getAvailableVersion
|
||||
setCurrentVersion
|
||||
getCurrentVersion
|
||||
}
|
||||
|
||||
#
|
||||
@ -282,7 +288,7 @@ doUpdate() {
|
||||
forceUpdate
|
||||
else
|
||||
echo "Your server is already up to date! The most recent version is ${bnumber}."
|
||||
echo "$timestamp: No update needed." >> "$logdir/update.log"
|
||||
echo "`timestamp`: No update needed." >> "$logdir/update.log"
|
||||
fi;
|
||||
}
|
||||
|
||||
@ -296,9 +302,8 @@ forceUpdate(){
|
||||
cd "$steamcmdroot"
|
||||
./$steamcmdexec +login anonymous +force_install_dir "$arkserverroot" +app_update $appid +quit
|
||||
# the current version should be the last version. We set our version
|
||||
getAvailableVersion
|
||||
setCurrentVersion
|
||||
echo "$timestamp: update to $instver complete" >> "$logdir/update.log"
|
||||
getCurrentVersion
|
||||
echo "`timestamp`: update to $instver complete" >> "$logdir/update.log"
|
||||
|
||||
# we restart the server only if it was started before the update
|
||||
if [ $serverWasAlive -eq 1 ]; then
|
||||
@ -314,14 +319,14 @@ safeUpdate(){
|
||||
|
||||
if isUpdateNeeded; then
|
||||
while [ ! `find $arkserverroot/ShooterGame/Saved/SavedArks -mmin -1 -name $serverMap.ark` ]; do
|
||||
echo "$timestamp: Save file older than 1 minute. Delaying update." >> "$logdir/update.log"
|
||||
echo "`timestamp`: Save file older than 1 minute. Delaying update." >> "$logdir/update.log"
|
||||
sleep 30s
|
||||
done
|
||||
echo "$timestamp: Save file newer than 1 minute. Performing an update." >> "$logdir/update.log"
|
||||
echo "`timestamp`: Save file newer than 1 minute. Performing an update." >> "$logdir/update.log"
|
||||
forceUpdate
|
||||
else
|
||||
echo "Your server is already up to date! The most recent version is ${bnumber}."
|
||||
echo "$timestamp: No update needed." >> "$logdir/update.log"
|
||||
echo "`timestamp`: No update needed." >> "$logdir/update.log"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -378,11 +383,11 @@ case "$1" in
|
||||
;;
|
||||
restart)
|
||||
doStop
|
||||
echo "$timestamp: stop" >> "$logdir/$arkmanagerLog"
|
||||
echo "`timestamp`: stop" >> "$logdir/$arkmanagerLog"
|
||||
sleep 10
|
||||
doStart
|
||||
echo "$timestamp: start" >> "$logdir/$arkmanagerLog"
|
||||
echo "$timestamp: restart" >> "$logdir/$arkmanagerLog"
|
||||
echo "`timestamp`: start" >> "$logdir/$arkmanagerLog"
|
||||
echo "`timestamp`: restart" >> "$logdir/$arkmanagerLog"
|
||||
;;
|
||||
install)
|
||||
doInstall
|
||||
|
||||
@ -86,7 +86,10 @@ if [ ! -z "$1" ]; then
|
||||
# Copy arkmanager.cfg inside linux configuation folder if it doesn't already exists
|
||||
mkdir -p "${INSTALL_ROOT}/etc/arkmanager"
|
||||
if [ -f "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" ]; then
|
||||
cp -n arkmanager.cfg "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg.NEW"
|
||||
chown "$1" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg.NEW"
|
||||
echo "A previous version of ARK Server Tools was detected in your system, your old configuration was not overwritten. You may need to manually update it."
|
||||
echo "A copy of the new configuration file was included in /etc/arkmanager. Make sure to review any changes and update your config accordingly!"
|
||||
exit 2
|
||||
else
|
||||
cp -n arkmanager.cfg "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg"
|
||||
|
||||
@ -28,6 +28,7 @@ test -x $DAEMON || exit 5
|
||||
case "$1" in
|
||||
start)
|
||||
log_daemon_msg "Starting" "$NAME"
|
||||
ulimit -n 100000
|
||||
su -s /bin/sh -c "$DAEMON start" $steamcmd_user
|
||||
sleep 5
|
||||
PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'`
|
||||
@ -53,6 +54,7 @@ case "$1" in
|
||||
;;
|
||||
|
||||
restart)
|
||||
ulimit -n 100000
|
||||
su -s /bin/sh -c "$DAEMON restart" $steamcmd_user
|
||||
;;
|
||||
|
||||
|
||||
@ -14,6 +14,7 @@ depend(){
|
||||
|
||||
start(){
|
||||
ebegin "Starting ARK manager daemon"
|
||||
ulimit -n 100000
|
||||
su -s /bin/sh -c "$DAEMON start" $steamcmd_user
|
||||
sleep 5
|
||||
PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'`
|
||||
|
||||
@ -42,6 +42,7 @@ test -x $DAEMON || exit 5
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting $NAME: "
|
||||
ulimit -n 100000
|
||||
su -s /bin/sh -c "$DAEMON start" $steamcmd_user > /dev/null
|
||||
sleep 5
|
||||
PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'`
|
||||
@ -74,6 +75,7 @@ case "$1" in
|
||||
|
||||
restart)
|
||||
echo -n "Restarting $NAME: "
|
||||
ulimit -n 100000
|
||||
su -s /bin/sh -c "$DAEMON restart" $steamcmd_user > /dev/null
|
||||
echo "OK"
|
||||
;;
|
||||
|
||||
@ -39,6 +39,7 @@ test -x $DAEMON || exit 5
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting $NAME: "
|
||||
ulimit -n 100000
|
||||
su -s /bin/sh -c "$DAEMON start" $steamcmd_user > /dev/null
|
||||
sleep 5
|
||||
PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'`
|
||||
@ -69,6 +70,7 @@ case "$1" in
|
||||
|
||||
restart)
|
||||
echo -n "Restarting $NAME: "
|
||||
ulimit -n 100000
|
||||
su -s /bin/sh -c "$DAEMON restart" $steamcmd_user > /dev/null
|
||||
echo "OK"
|
||||
;;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user