From 23ebcaacd4e1a401589bac60029b582231aaaaee Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Mon, 22 Jun 2015 17:20:42 +1000 Subject: [PATCH 01/32] Use EXECPREFIX and INSTALL_ROOT when installing --- tools/install.sh | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 7918678..cc25da8 100644 --- a/tools/install.sh +++ b/tools/install.sh @@ -1,32 +1,34 @@ #!/bin/bash -if [ ! -z $1 ]; then +EXECPREFIX="${EXECPREFIX:-/usr/local}" + +if [ ! -z "$1" ]; then # Copy arkmanager to /usr/bin and set permissions - cp arkmanager /usr/bin/arkmanager - chmod +x /usr/bin/arkmanager + cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" + chmod +x "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" # Copy arkdaemon to /etc/init.d ,set permissions and add it to boot - cp arkdaemon /etc/init.d/arkdaemon - chmod +x /etc/init.d/arkdaemon + cp arkdaemon "${INSTALL_ROOT}/etc/init.d/arkdaemon" + chmod +x "${INSTALL_ROOT}/etc/init.d/arkdaemon" # add to startup if the system use sysinit - if [ test -x /usr/sbin/update-rc.d ]; then + if [ -x /usr/sbin/update-rc.d -a -z "${INSTALL_ROOT}" ]; then update-rc.d arkdaemon defaults echo "Ark server will now start on boot, if you want to remove this feature run the following line" echo "update-rc.d -f arkdaemon remove" fi # Create a folder in /var/log to let Ark tools write its own log files - mkdir -p /var/log/arktools - chown $1 /var/log/arktools + mkdir -p "${INSTALL_ROOT}/var/log/arktools" + chown "$1" "${INSTALL_ROOT}/var/log/arktools" # Copy arkmanager.cfg inside linux configuation folder if it doesn't already exists - mkdir -p /etc/arkmanager - if [ -f /etc/arkmanager/arkmanager.cfg ]; then + mkdir -p "${INSTALL_ROOT}/etc/arkmanager" + if [ -f "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" ]; then 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."; exit 2 else - cp -n arkmanager.cfg /etc/arkmanager/arkmanager.cfg - chown $1 /etc/arkmanager/arkmanager.cfg + cp -n arkmanager.cfg "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" + chown "$1" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" fi else From dd61066cc4063593c91be125ed476c2b46fd9134 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Mon, 22 Jun 2015 18:12:29 +1000 Subject: [PATCH 02/32] Quote paths to handle paths with spaces --- tools/arkmanager | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 8d6727b..3bc2c38 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -56,7 +56,7 @@ function checkForUpdate(){ # Set the new current version in a file # function setCurrentVersion(){ - cd $arkserverroot + cd "$arkserverroot" echo $bnumber > arkversion } @@ -79,7 +79,7 @@ function isUpdateNeeded(){ # Return the current version number # function getCurrentVersion(){ - cd $arkserverroot + cd "$arkserverroot" touch arkversion # If the file doesn't exist instver=`cat "arkversion"` return $instver @@ -123,9 +123,8 @@ doStart() { echo "The server is already running" else arkserveropts="TheIsland?SessionName=$sessioname?QueryPort=$arkqueryport?ServerPassword=$arkserverpass?ServerAdminPassword=$arkserverapass?listen" - thejob="$arkserverroot/$arkserverexec $arkserveropts" # run the server in background - $thejob >/dev/null 2>&1 & + nohup "$arkserverroot/$arkserverexec" "$arkserveropts" /dev/null 2>&1 & echo "$timestamp: start" >> "$logdir/arkserver.log" fi } @@ -149,20 +148,20 @@ doStop() { # install of ARK server # doInstall() { - mkdir -p $arkserverroot + mkdir -p "$arkserverroot" # Check if steamcmd is installed, and if not, install it - if [ ! -e $steamcmdroot/$steamcmdexec ]; then - mkdir -p $steamcmdroot + if [ ! -e "$steamcmdroot/$steamcmdexec" ]; then + mkdir -p "$steamcmdroot" cd /tmp wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz - tar -xvzf steamcmd_linux.tar.gz -C $steamcmdroot - cd $steamcmdroot + tar -xvzf steamcmd_linux.tar.gz -C "$steamcmdroot" + cd "$steamcmdroot" ./steamcmd.sh +quit echo "SteamCMD was installed in $steamcmdroot" fi - cd $steamcmdroot + cd "$steamcmdroot" # 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 @@ -174,7 +173,7 @@ doInstall() { # Stop the server, update it and then start it back. # doUpdate() { - cd $arkserverroot + cd "$arkserverroot" if isUpdateNeeded; then # check if the server was alive before the update so we can launch it back after the update @@ -183,11 +182,9 @@ doUpdate() { serverWasAlive=1 fi doStop - cd $steamcmdroot + cd "$steamcmdroot" ./$steamcmdexec +login anonymous +force_install_dir "$arkserverroot" +app_update $appid +quit - cd $logdir echo "$bnumber" > "$arkserverroot/arkversion" - cd $steamcmdroot echo "$timestamp: update to $bnumber complete" >> "$logdir/update.log" tail -n 1 "$logdir/arkserver.log" From b1c0d28f6aabf648a456c730a898fb2d66d05804 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Mon, 22 Jun 2015 18:15:17 +1000 Subject: [PATCH 03/32] Import user config --- tools/arkmanager | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index 3bc2c38..310006c 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -16,7 +16,13 @@ fi #--------------------- # Global variables -source /etc/arkmanager/arkmanager.cfg +if [ -f "/etc/arkmanager/arkmanager.cfg" ]; then + source /etc/arkmanager/arkmanager.cfg +fi + +if [ -f "${HOME}/.arkmanager.cfg" ]; then + source "${HOME}/.arkmanager.cfg" +fi # Local variables info="" From 78944b04f845b7ce45d5e6f06c43e6545768b0af Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Mon, 22 Jun 2015 18:29:16 +1000 Subject: [PATCH 04/32] Add custom server variables --- tools/arkmanager | 18 +++++++++++++++++- tools/arkmanager.cfg | 3 +++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index 310006c..117c99b 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -128,7 +128,23 @@ doStart() { if isTheServerRunning; then echo "The server is already running" else - arkserveropts="TheIsland?SessionName=$sessioname?QueryPort=$arkqueryport?ServerPassword=$arkserverpass?ServerAdminPassword=$arkserverapass?listen" + ark_SessionName="${ark_SessionName:-${sessionname}}" + ark_QueryPort="${ark_QueryPort:-${arkqueryport}}" + ark_ServerPassword="${ark_ServerPassword:-${arkserverpass}}" + ark_ServerAdminPassword="${ark_ServerAdminPassword:-${arkserverapass}}" + arkserveropts="TheIsland" + + # bring in ark_... options + for varname in "${!ark_@}"; do + name="${varname#ark_}" + val="${!varname}" + + if [ -n "$val" ]; then + arkserveropts="${arkserveropts}?${name}=${val}" + fi + done + + arkserveropts="${arkserveropts}?listen" # run the server in background nohup "$arkserverroot/$arkserverexec" "$arkserveropts" /dev/null 2>&1 & echo "$timestamp: start" >> "$logdir/arkserver.log" diff --git a/tools/arkmanager.cfg b/tools/arkmanager.cfg index e807853..b3af50c 100644 --- a/tools/arkmanager.cfg +++ b/tools/arkmanager.cfg @@ -12,6 +12,9 @@ arkserverport="7778" # ARK server arkserverpass="SERVERPASSWORD" # ARK server password, empty: no password required to login arkserverapass="ADMINPASSWORD" # ARK server admin password, KEEP IT SAFE! +# other options - use ark_= +ark_MaxPlayers="70" + # config Service servicename="arkserv" # Name of the service (don't change if you don't know what are you doing) logdir="/var/log/arktools" # Logs path (default /var/log/arktools) From e15becbc3012524789118a537631be0862561d19 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Mon, 22 Jun 2015 18:30:35 +1000 Subject: [PATCH 05/32] Add server port to server variables --- tools/arkmanager | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/arkmanager b/tools/arkmanager index 117c99b..3c1facf 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -129,6 +129,7 @@ doStart() { echo "The server is already running" else ark_SessionName="${ark_SessionName:-${sessionname}}" + ark_Port="${ark_Port:-${arkserverport}}" ark_QueryPort="${ark_QueryPort:-${arkqueryport}}" ark_ServerPassword="${ark_ServerPassword:-${arkserverpass}}" ark_ServerAdminPassword="${ark_ServerAdminPassword:-${arkserverapass}}" @@ -139,6 +140,13 @@ doStart() { 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 From cbf3251b5d74bbe4432642b65068bd38de41ffef Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 10:26:58 +0200 Subject: [PATCH 06/32] added contributing --- CONTRIBUTING.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..7faa9c4 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,11 @@ +# Contribute to ARK Server Tools + +This is an open source project, so feel free to fork it, improve it and send pull requests! + +## Keep your fork updated + +When you fork our repository and your version gets outdated, please, update it using `git pull --rebase`, in this way you will not create any additional useless commit. + +## Got an idea? + +If you have a nice idea you'd like to add to this project, please, first open a new issue describing your idea, so everybody can contribute to it and you'll be sure that nobody is working on the same thing. \ No newline at end of file From b3aa2a57222c24be2282142fb645107503fa3713 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 10:47:37 +0200 Subject: [PATCH 07/32] Revert commit 23706cae6ae6242060fa5c124eba5c00f7db6ea2 --- tools/arkmanager | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 0128e93..5eef230 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -151,17 +151,6 @@ doStop() { doInstall() { mkdir -p $arkserverroot - # Check if steamcmd is installed, and if not, install it - if [ ! -e $steamcmdroot/$steamcmdexec ]; then - mkdir -p $steamcmdroot - cd /tmp - wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz - tar -xvzf steamcmd_linux.tar.gz -C $steamcmdroot - cd $steamcmdroot - ./steamcmd.sh +quit - echo "SteamCMD was installed in $steamcmdroot" - fi - cd $steamcmdroot # install the server ./$steamcmdexec +login anonymous +force_install_dir "$arkserverroot" +app_update $appid validate +quit From f13091a6748624c879d74c4c210bf36baa9ea44b Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 11:22:32 +0200 Subject: [PATCH 08/32] support paths with spaces --- tools/arkmanager | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 5eef230..4967dec 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -56,7 +56,7 @@ function checkForUpdate(){ # Set the new current version in a file # function setCurrentVersion(){ - cd $arkserverroot + cd "$arkserverroot" echo $bnumber > arkversion } @@ -79,7 +79,7 @@ function isUpdateNeeded(){ # Return the current version number # function getCurrentVersion(){ - cd $arkserverroot + cd "$arkserverroot" touch arkversion # If the file doesn't exist instver=`cat "arkversion"` return $instver @@ -151,7 +151,7 @@ doStop() { doInstall() { mkdir -p $arkserverroot - cd $steamcmdroot + cd "$steamcmdroot" # 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 @@ -163,7 +163,7 @@ doInstall() { # Stop the server, update it and then start it back. # doUpdate() { - cd $arkserverroot + cd "$arkserverroot" if isUpdateNeeded; then # check if the server was alive before the update so we can launch it back after the update @@ -172,11 +172,11 @@ doUpdate() { serverWasAlive=1 fi doStop - cd $steamcmdroot + cd "$steamcmdroot" ./$steamcmdexec +login anonymous +force_install_dir "$arkserverroot" +app_update $appid +quit - cd $logdir + cd "$logdir" echo "$bnumber" > "$arkserverroot/arkversion" - cd $steamcmdroot + cd "$steamcmdroot" echo "$timestamp: update to $bnumber complete" >> "$logdir/update.log" # we restart the server only if it was started before the update From 49103bd32c4739042548fdee5c2349df55e9c69f Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 11:36:19 +0200 Subject: [PATCH 09/32] rename function to make it clearer --- tools/arkmanager | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 169dd54..d0c2bba 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -111,10 +111,9 @@ function isTheServerRunning(){ } # -# Check if the server is up and visible in steam server list -# If the server is listenning on his port return 0, else return 1 +# Check if the server is down and not visible in steam server list # -function isTheServerUp(){ +function isTheServerDown(){ lsof -i |grep $arkserverport > /dev/null result=$? return $result @@ -227,10 +226,10 @@ printStatus(){ echo -e "$NORMAL" "Server running:" "$RED" "No" fi - if isTheServerUp ;then - echo -e "$NORMAL" "Server online:" "$GREEN" " Yes" - else + if isTheServerDown ;then echo -e "$NORMAL" "Server online:" "$RED" " No" + else + echo -e "$NORMAL" "Server online:" "$GREEN" " Yes" fi getCurrentVersion echo -e "$NORMAL" "Server version:" "$GREEN" $instver From 8d9bbadf5bda42767ed2e6a7082471cce198bdee Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 11:40:55 +0200 Subject: [PATCH 10/32] arkdaemon renamed to arkmanager, so it follows the convention of daemons with same name of their main script --- README.md | 2 +- tools/install.sh | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index dc41101..5204578 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/master/neti NB: You may want to change the `bash -s` parameter to fit your steam user if different from `steam`. -This will copy the `arkmanager` and the `arkdaemon` to the proper directories and will create an empty log directory in `/var/log` for ARK Server Tools. +This will copy the `arkmanager` script and its daemon to the proper directories and will create an empty log directory in `/var/log` for ARK Server Tools. ## Configure ARK Server diff --git a/tools/install.sh b/tools/install.sh index 47c1c73..5450eb6 100644 --- a/tools/install.sh +++ b/tools/install.sh @@ -7,14 +7,14 @@ if [ ! -z "$1" ]; then cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" chmod +x "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" - # Copy arkdaemon to /etc/init.d ,set permissions and add it to boot - cp arkdaemon "${INSTALL_ROOT}/etc/init.d/arkdaemon" - chmod +x "${INSTALL_ROOT}/etc/init.d/arkdaemon" + # Copy arkdaemon to /etc/init.d/arkmanager ,set permissions and add it to boot + cp arkdaemon "${INSTALL_ROOT}/etc/init.d/arkmanager" + chmod +x "${INSTALL_ROOT}/etc/init.d/arkmanager" # add to startup if the system use sysinit if [ -x /usr/sbin/update-rc.d -a -z "${INSTALL_ROOT}" ]; then - update-rc.d arkdaemon defaults + update-rc.d arkmanager defaults echo "Ark server will now start on boot, if you want to remove this feature run the following line" - echo "update-rc.d -f arkdaemon remove" + echo "update-rc.d -f arkmanager remove" fi # Create a folder in /var/log to let Ark tools write its own log files From d7da82e47b52fd729e6672aa2d87d369cdc86c53 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 13:47:36 +0200 Subject: [PATCH 11/32] escape sessionname special chars --- tools/arkmanager | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index d0c2bba..b3856a1 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -127,7 +127,7 @@ doStart() { if isTheServerRunning; then echo "The server is already running" else - ark_SessionName="${ark_SessionName:-${sessionname}}" + ark_SessionName=`printf "%q" "${ark_SessionName:-${sessionname}}"` # Escape SessionName to prevent conflicts in the startup sequence ark_Port="${ark_Port:-${arkserverport}}" ark_QueryPort="${ark_QueryPort:-${arkqueryport}}" ark_ServerPassword="${ark_ServerPassword:-${arkserverpass}}" From ab5efe67d83cbfdeb607e0a0fcfdc0213ed591ed Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 14:32:03 +0200 Subject: [PATCH 12/32] added iptables informations --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5204578..1b7e270 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ We assume you have created the `steam` user to store steamcmd and your ARK serve ## Requirements +### Increase max open files + Edit /etc/sysctl.conf and set: ``` fs.file-max=100000 @@ -26,6 +28,13 @@ session required pam_limits.so After these edits, you'll need to restart your bash session or reconnect to your SSH shell to make the changes effective. +### Open firewall ports + +```sh +iptables -I INPUT -p udp --dport 27016 -j ACCEPT +iptables -I INPUT -p udp --dport 7778 -j ACCEPT +``` + ## Install ARK Server Tools To install ARK Server Tools run this command: @@ -36,7 +45,7 @@ curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/master/neti NB: You may want to change the `bash -s` parameter to fit your steam user if different from `steam`. -This will copy the `arkmanager` script and its daemon to the proper directories and will create an empty log directory in `/var/log` for ARK Server Tools. +This will copy the `arkmanager` script and its daemon to the proper directories and will create an empty log directory in `/var/log` for ARK Server Tools. ## Configure ARK Server From e318cf6ea97abbc7d147fe0680e8358e060957a5 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 15:08:16 +0200 Subject: [PATCH 13/32] added checkupdate to hint message --- tools/arkmanager | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index b3856a1..29079a3 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -272,6 +272,6 @@ case "$1" in printStatus ;; *) - echo "use arkmanager " + echo "use arkmanager " ;; esac From 7ce311832234e33788635b0d0df1fd3030970ff2 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Tue, 23 Jun 2015 22:58:25 +1000 Subject: [PATCH 14/32] Move LSB init script to separate directory --- tools/install.sh | 18 ++++++++++-------- tools/{ => lsb}/arkdaemon | 0 2 files changed, 10 insertions(+), 8 deletions(-) rename tools/{ => lsb}/arkdaemon (100%) diff --git a/tools/install.sh b/tools/install.sh index 5450eb6..26db1f6 100644 --- a/tools/install.sh +++ b/tools/install.sh @@ -7,14 +7,16 @@ if [ ! -z "$1" ]; then cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" chmod +x "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" - # Copy arkdaemon to /etc/init.d/arkmanager ,set permissions and add it to boot - cp arkdaemon "${INSTALL_ROOT}/etc/init.d/arkmanager" - chmod +x "${INSTALL_ROOT}/etc/init.d/arkmanager" - # add to startup if the system use sysinit - if [ -x /usr/sbin/update-rc.d -a -z "${INSTALL_ROOT}" ]; then - update-rc.d arkmanager defaults - echo "Ark server will now start on boot, if you want to remove this feature run the following line" - echo "update-rc.d -f arkmanager remove" + # Copy arkdaemon to /etc/init.d ,set permissions and add it to boot + if [ -f /lib/lsb/init-functions ]; then + cp lsb/arkdaemon "${INSTALL_ROOT}/etc/init.d/arkmanager" + chmod +x "${INSTALL_ROOT}/etc/init.d/arkmanager" + # add to startup if the system use sysinit + if [ -x /usr/sbin/update-rc.d -a -z "${INSTALL_ROOT}" ]; then + update-rc.d arkmanager defaults + echo "Ark server will now start on boot, if you want to remove this feature run the following line" + echo "update-rc.d -f arkmanager remove" + fi fi # Create a folder in /var/log to let Ark tools write its own log files diff --git a/tools/arkdaemon b/tools/lsb/arkdaemon similarity index 100% rename from tools/arkdaemon rename to tools/lsb/arkdaemon From 607a3096be9159dc28ea29d15887b657c9812fc4 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Tue, 23 Jun 2015 23:01:29 +1000 Subject: [PATCH 15/32] Modify DAEMON variable according to EXECPREFIX --- tools/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/install.sh b/tools/install.sh index 26db1f6..e955f91 100644 --- a/tools/install.sh +++ b/tools/install.sh @@ -11,6 +11,7 @@ if [ ! -z "$1" ]; then if [ -f /lib/lsb/init-functions ]; then cp lsb/arkdaemon "${INSTALL_ROOT}/etc/init.d/arkmanager" chmod +x "${INSTALL_ROOT}/etc/init.d/arkmanager" + sed -i "s|^DAEMON=\"/usr|DAEMON=\"${EXECPREFIX}|" "${INSTALL_ROOT}/etc/init.d/arkmanager" # add to startup if the system use sysinit if [ -x /usr/sbin/update-rc.d -a -z "${INSTALL_ROOT}" ]; then update-rc.d arkmanager defaults From d44b9e9f67c7583b6d51e4a21c6065183ef05ada Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Tue, 23 Jun 2015 23:08:52 +1000 Subject: [PATCH 16/32] Add RedHat SysV init script --- tools/install.sh | 9 +++++ tools/redhat/arkdaemon | 84 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100755 tools/redhat/arkdaemon diff --git a/tools/install.sh b/tools/install.sh index e955f91..4c972d9 100644 --- a/tools/install.sh +++ b/tools/install.sh @@ -18,6 +18,15 @@ if [ ! -z "$1" ]; then echo "Ark server will now start on boot, if you want to remove this feature run the following line" echo "update-rc.d -f arkmanager remove" fi + elif [ -f /etc/rc.d/init.d/functions ]; then + cp redhat/arkdaemon "${INSTALL_ROOT}/etc/rc.d/init.d/arkmanager" + chmod +x "${INSTALL_ROOT}/etc/rc.d/init.d/arkmanager" + sed -i "s@^DAEMON=\"/usr/bin@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}/etc/rc.d/init.d/arkmanager" + if [ -x /sbin/chkconfig -a -z "${INSTALL_ROOT}" ]; then + chkconfig --add arkmanager + echo "Ark server will now start on boot, if you want to remove this feature run the following line" + echo "chkconfig arkmanager off" + fi fi # Create a folder in /var/log to let Ark tools write its own log files diff --git a/tools/redhat/arkdaemon b/tools/redhat/arkdaemon new file mode 100755 index 0000000..be4be54 --- /dev/null +++ b/tools/redhat/arkdaemon @@ -0,0 +1,84 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/arkdaemon +# +# ARK manager daemon +# +# chkconfig: 2345 80 20 +# description: ARK manager daemon used to start the server and keep it updated +# processname: ShooterGameServer +# config: /etc/arkmanager/arkmanager.cfg + +### BEGIN INIT INFO +# Provides: ARK manager deamon +# Required-Start: networking +# Required-Stop: networking +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: ARK manager deamon +# Description: ARK manager daemon used to start the server and keep it updated +# +### END INIT INFO + +# Using the lsb functions to perform the operations. +. /etc/rc.d/init.d/functions + +# Global variables +source /etc/arkmanager/arkmanager.cfg + +NAME="ShooterGameServer" +LOGFILE="${logdir}/${NAME}.log" +DAEMON="/usr/bin/arkmanager" + +set -e + +# If the daemon is not there, then exit. +test -x $DAEMON || exit 5 + +case "$1" in + start) + echo -n "Starting $NAME: " + su -s /bin/sh -c "$DAEMON start" $steamcmd_user + sleep 5 + PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'` + if [ -n "$PID" ]; then + touch /var/lock/subsys/arkdaemon + echo "OK" + exit 0 + else + echo "Failed" + exit 1 + fi + ;; + + stop) + echo -n "Stopping $NAME: " + su -s /bin/sh -c "$DAEMON stop" $steamcmd_user + sleep 5 + PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'` + if [ -n "$PID" ]; then + echo "Failed" + exit 1 + else + echo "OK" + rm -f /var/lock/subsys/arkdaemon + exit 0 + fi + ;; + + restart) + su -s /bin/sh -c "$DAEMON restart" $steamcmd_user + exit 0 + ;; + + status) + su -s /bin/sh -c "$DAEMON status" $steamcmd_user + exit 0 + ;; + + *) + # For invalid arguments, print the usage message. + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac From a891e71e753dfb032d6bd84b8efacc4b8083f3aa Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Tue, 23 Jun 2015 23:15:28 +1000 Subject: [PATCH 17/32] Add OpenRC init script --- tools/install.sh | 9 +++++++++ tools/openrc/arkdaemon | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 tools/openrc/arkdaemon diff --git a/tools/install.sh b/tools/install.sh index 4c972d9..ec1f5ea 100644 --- a/tools/install.sh +++ b/tools/install.sh @@ -27,6 +27,15 @@ if [ ! -z "$1" ]; then echo "Ark server will now start on boot, if you want to remove this feature run the following line" echo "chkconfig arkmanager off" fi + elif [ -f /sbin/runscript ]; then + cp openrc/arkdaemon "${INSTALL_ROOT}/etc/init.d/arkmanager" + chmod +x "${INSTALL_ROOT}/etc/init.d/arkmanager" + sed -i "s@^DAEMON=\"/usr/bin@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}/etc/init.d/arkmanager" + if [ -x /sbin/rc-update -a -z "${INSTALL_ROOT}" ]; then + rc-update add arkmanager default + echo "Ark server will now start on boot, if you want to remove this feature run the following line" + echo "rc-update del arkmanager default" + fi fi # Create a folder in /var/log to let Ark tools write its own log files diff --git a/tools/openrc/arkdaemon b/tools/openrc/arkdaemon new file mode 100644 index 0000000..7104607 --- /dev/null +++ b/tools/openrc/arkdaemon @@ -0,0 +1,38 @@ +#!/sbin/runscript +# Short-Description: ARK manager deamon +# Description: ARK manager daemon used to start the server and keep it updated + +source /etc/arkmanager/arkmanager.cfg + +NAME="ShooterGameServer" +LOGFILE="${logdir}/${NAME}.log" +DAEMON="/usr/bin/arkmanager" + +depend(){ + require net +} + +start(){ + ebegin "Starting ARK manager daemon" + su -s /bin/sh -c "$DAEMON start" $steamcmd_user + sleep 5 + PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'` + if [ -n "$PID" ]; then + eend 0 + else + eend 1 + fi +} + +stop(){ + ebegin "Stopping ARK manager daemon" + su -s /bin/sh -c "$DAEMON start" $steamcmd_user + sleep 5 + PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'` + if [ -n "$PID" ]; then + eend 0 + else + eend 1 + fi +} + From 8582efc4bece5fb6330d71cfec8dc6a7f255e610 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 18:35:38 +0200 Subject: [PATCH 18/32] improved checkupdates output --- tools/arkmanager | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 29079a3..eddb2b0 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -49,12 +49,14 @@ function testfunction(){ # function checkForUpdate(){ if isUpdateNeeded; then - echo "Current version:" $instver - echo "Available version:" $bnumber - echo "Your server needs to be restarted in order to receive the latest update." - echo "Run \"arkmanager update\" to do so" + echo -e "Current version:" "$RED" $instver "$NORMAL" + echo -e "Available version:" "$GREEN" $bnumber "$NORMAL" + echo -e "Your server needs to be restarted in order to receive the latest update." + echo -e "Run \"arkmanager update\" to do so" else - echo "No update available" + echo -e "Current version:" "$GREEN" $instver "$NORMAL" + echo -e "Available version:" "$GREEN" $bnumber "$NORMAL" + echo "Your server is up to date!" fi } From b94be728586474a4887ef7888520d0114d9445c8 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 23:00:38 +0200 Subject: [PATCH 19/32] fixed format of checkupdate output --- tools/arkmanager | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index eddb2b0..90c2d9d 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -223,19 +223,18 @@ doUpdate() { # printStatus(){ if isTheServerRunning ;then - echo -e "$NORMAL" "Server running:" "$GREEN" "Yes" + echo -e "$NORMAL" "Server running:" "$GREEN" "Yes" "$NORMAL" else - echo -e "$NORMAL" "Server running:" "$RED" "No" + echo -e "$NORMAL" "Server running:" "$RED" "No" "$NORMAL" fi if isTheServerDown ;then - echo -e "$NORMAL" "Server online:" "$RED" " No" + echo -e "$NORMAL" "Server online:" "$RED" " No" "$NORMAL" else - echo -e "$NORMAL" "Server online:" "$GREEN" " Yes" + echo -e "$NORMAL" "Server online:" "$GREEN" " Yes" "$NORMAL" fi getCurrentVersion - echo -e "$NORMAL" "Server version:" "$GREEN" $instver - echo -e "$NORMAL" + echo -e "$NORMAL" "Server version:" "$GREEN" $instver "$NORMAL" } From f9c97a2bd2e2de4295bdee07566ed71659bb658e Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 23:26:32 +0200 Subject: [PATCH 20/32] improved help messages --- tools/arkmanager | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index 90c2d9d..17420f0 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -272,7 +272,20 @@ case "$1" in status) printStatus ;; + -h|--help) + echo -e "Usage: arkmanager [OPTION]\n" + echo "Option Description" + echo "start Starts the server" + echo "stop Stops the server" + echo "restart Stops the server and then starts it" + echo "install Install the ARK server files from steamcmd" + echo "update Check for a new ARK server version, if needed, stops the server, updates it, and starts it again" + echo "checkupdate Check for a new ARK server version" + echo "boradcast PLACEHOLDER, not supported yet" + echo "status Returns the status of the current ARK server instance" + ;; *) - echo "use arkmanager " + echo "arkmanager: no command specified" + echo "Try 'arkmanager -h' or 'arkmanager --help' for more information." ;; esac From 911ec781b781bffac51549f1ddb35a9a8de8181a Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 23:38:06 +0200 Subject: [PATCH 21/32] improved outputs --- tools/arkmanager | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/arkmanager b/tools/arkmanager index 17420f0..aa94592 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -49,11 +49,13 @@ function testfunction(){ # function checkForUpdate(){ if isUpdateNeeded; then + tput rc; tput ed; echo -e "Current version:" "$RED" $instver "$NORMAL" echo -e "Available version:" "$GREEN" $bnumber "$NORMAL" echo -e "Your server needs to be restarted in order to receive the latest update." echo -e "Run \"arkmanager update\" to do so" else + tput rc; tput ed; echo -e "Current version:" "$GREEN" $instver "$NORMAL" echo -e "Available version:" "$GREEN" $bnumber "$NORMAL" echo "Your server is up to date!" @@ -165,10 +167,13 @@ doStart() { # doStop() { if isTheServerRunning; then + tput sc echo "Stopping server..." # kill the server with the PID PID=`ps -ef | grep "$arkserverroot/$arkserverexec" | grep -v grep | awk '{print $2}'` kill -9 $PID + + tput rc; tput ed; echo "$timestamp: stop" >> "$logdir/arkserver.log" else echo "The server is already stopped" @@ -264,6 +269,8 @@ case "$1" in #testfunction ;; checkupdate) + tput sc + echo "Querying Steam database for latest version..." checkForUpdate ;; broadcast) From 69e6c8e42172e1ed5ac361acfa7627fb2e4bb988 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 23:42:54 +0200 Subject: [PATCH 22/32] revert printf escape --- tools/arkmanager | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index aa94592..a73ca39 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -131,7 +131,7 @@ doStart() { if isTheServerRunning; then echo "The server is already running" else - ark_SessionName=`printf "%q" "${ark_SessionName:-${sessionname}}"` # Escape SessionName to prevent conflicts in the startup sequence + ark_SessionName="${ark_SessionName:-${sessionname}}" ark_Port="${ark_Port:-${arkserverport}}" ark_QueryPort="${ark_QueryPort:-${arkqueryport}}" ark_ServerPassword="${ark_ServerPassword:-${arkserverpass}}" From 2366c21fd563c197dbad42d764af6b3faf3abb8f Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Tue, 23 Jun 2015 23:51:59 +0200 Subject: [PATCH 23/32] improved output of update command --- tools/arkmanager | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index a73ca39..7520d41 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -217,9 +217,8 @@ doUpdate() { doStart fi else - echo "No update available" - echo "$timestamp: No update needed." >> "$logdir/update.log" - tail -n 1 "$logdir/update.log" + echo "Your server is already up to date! The most recent version is ${bnumber}." + echo "$timestamp: No update needed." >> "$logdir/update.log" fi; } From 362fa3a3c5bd507ee7610e515d3d91434390931d Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Wed, 24 Jun 2015 12:01:37 +0200 Subject: [PATCH 24/32] standardize server options, now they work all in the same way --- tools/arkmanager | 9 ++------- tools/arkmanager.cfg | 17 ++++++++++------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 7520d41..2f4b7a6 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -118,7 +118,7 @@ function isTheServerRunning(){ # Check if the server is down and not visible in steam server list # function isTheServerDown(){ - lsof -i |grep $arkserverport > /dev/null + lsof -i |grep $ark_Port > /dev/null result=$? return $result } @@ -131,12 +131,7 @@ doStart() { if isTheServerRunning; then echo "The server is already running" else - ark_SessionName="${ark_SessionName:-${sessionname}}" - ark_Port="${ark_Port:-${arkserverport}}" - ark_QueryPort="${ark_QueryPort:-${arkqueryport}}" - ark_ServerPassword="${ark_ServerPassword:-${arkserverpass}}" - ark_ServerAdminPassword="${ark_ServerAdminPassword:-${arkserverapass}}" - arkserveropts="TheIsland" + arkserveropts=$serverMap # bring in ark_... options for varname in "${!ark_@}"; do diff --git a/tools/arkmanager.cfg b/tools/arkmanager.cfg index b3af50c..b0571d1 100644 --- a/tools/arkmanager.cfg +++ b/tools/arkmanager.cfg @@ -3,16 +3,19 @@ steamcmdroot="/home/steam/steamcmd" # path of yo steamcmdexec="steamcmd.sh" # name of steamcmd executable steamcmd_user="steam" # name of the system user who own steamcmd folder -# config Server -sessioname=YourLinuxSessionName +# config environment arkserverroot="/home/steam/ARK" # path of your ARK server files (default ~/ARK) arkserverexec="ShooterGame/Binaries/Linux/ShooterGameServer" # name of ARK server executable -arkqueryport="27016" # ARK query port (default 27016) -arkserverport="7778" # ARK server port (default 7778) -arkserverpass="SERVERPASSWORD" # ARK server password, empty: no password required to login -arkserverapass="ADMINPASSWORD" # ARK server admin password, KEEP IT SAFE! -# other options - use ark_= +# ARK server options - use ark_= +# comment out these values if you want to define them +# inside your GameUserSettings.ini file +serverMap="TheIsland" # server map (default TheIsland) +ark_SessionName="ARK Server Tools" # if your session name needs special characters please use the .ini instead +ark_Port="7778" # ARK server port (default 7778) +ark_QueryPort="27016" # ARK query port (default 27016) +ark_ServerPassword="" # ARK server password, empty: no password required to login +ark_ServerAdminPassword="keyboardcat" # ARK server admin password, KEEP IT SAFE! ark_MaxPlayers="70" # config Service From b9b157c7e50fe85b722cda0f500d28ebf38d78da Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Wed, 24 Jun 2015 12:13:41 +0200 Subject: [PATCH 25/32] fixed output spaces --- tools/arkmanager | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 2f4b7a6..56631fd 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -222,18 +222,18 @@ doUpdate() { # printStatus(){ if isTheServerRunning ;then - echo -e "$NORMAL" "Server running:" "$GREEN" "Yes" "$NORMAL" + echo -e "$NORMAL" "Server running: " "$GREEN" "Yes" "$NORMAL" else - echo -e "$NORMAL" "Server running:" "$RED" "No" "$NORMAL" + echo -e "$NORMAL" "Server running: " "$RED" "No" "$NORMAL" fi if isTheServerDown ;then - echo -e "$NORMAL" "Server online:" "$RED" " No" "$NORMAL" + echo -e "$NORMAL" "Server online: " "$RED" "No" "$NORMAL" else - echo -e "$NORMAL" "Server online:" "$GREEN" " Yes" "$NORMAL" + echo -e "$NORMAL" "Server online: " "$GREEN" "Yes" "$NORMAL" fi getCurrentVersion - echo -e "$NORMAL" "Server version:" "$GREEN" $instver "$NORMAL" + echo -e "$NORMAL" "Server version: " "$GREEN" $instver "$NORMAL" } From eabb3412b2bae3d49f6527fad2d69f9209c832d5 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Wed, 24 Jun 2015 12:22:59 +0200 Subject: [PATCH 26/32] improved configuration section of readme --- README.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1b7e270..440cbc5 100644 --- a/README.md +++ b/README.md @@ -47,9 +47,24 @@ NB: You may want to change the `bash -s` parameter to fit your steam user if dif This will copy the `arkmanager` script and its daemon to the proper directories and will create an empty log directory in `/var/log` for ARK Server Tools. -## Configure ARK Server +## Configuration -All the needed variables are stored in the /etc/arkmanager/arkmanager.cfg configuration file change them following the comments. +Stored in `/etc/arkmanager/arkmanager.cfg` you can find the variables needed to start the server, like the port numbers, the system environment variables and so on. + +Also, in this file, you can specify any parameter you want to add to the startup command of ARK server. +These parameters must be prefixed by the `ark_` string, some example could be: + +```sh +ark_SessionName="My ARK server" +ark_MaxPlayers=50 +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. + +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. ## Install ARK Server From 969d73a4115d6dd47c1895ffe7974efa8b0ea4f0 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Wed, 24 Jun 2015 12:25:54 +0200 Subject: [PATCH 27/32] added documentation about --help argument --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 440cbc5..377e07a 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,8 @@ arkmanager install ``` ## Commands +To get a complete list of the script commands you can run `arkmanager --help` or `arkmanager -h`. + #### arkmanager install installs arkmanager to the directory specified in `.arkmanager.cfg` From ee050cffae98537f34d9b578db00908b9575d780 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Wed, 24 Jun 2015 12:53:25 +0200 Subject: [PATCH 28/32] use git.io url for the net installer (shorter) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 377e07a..05c0dab 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ iptables -I INPUT -p udp --dport 7778 -j ACCEPT To install ARK Server Tools run this command: ```sh -curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/master/netinstall.sh | sudo bash -s steam +curl -s http://git.io/vtf5N | sudo bash -s steam ``` NB: You may want to change the `bash -s` parameter to fit your steam user if different from `steam`. From 00510c87b19b8af5a170bad884790744e8350440 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Wed, 24 Jun 2015 14:00:59 +0200 Subject: [PATCH 29/32] fixed iptables informations --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 05c0dab..7b64a76 100644 --- a/README.md +++ b/README.md @@ -32,9 +32,13 @@ After these edits, you'll need to restart your bash session or reconnect to your ```sh iptables -I INPUT -p udp --dport 27016 -j ACCEPT +iptables -I INPUT -p tcp --dport 27016 -j ACCEPT iptables -I INPUT -p udp --dport 7778 -j ACCEPT +iptables -I INPUT -p tcp --dport 7778 -j ACCEPT ``` +NB: Change the ports according to the ones set in your `arkmanager.cfg` file. + ## Install ARK Server Tools To install ARK Server Tools run this command: From 6b531dea7e62609be19d353b6083165ca7f06f46 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Wed, 24 Jun 2015 17:36:27 +0200 Subject: [PATCH 30/32] improved start and stop messages --- tools/arkmanager | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index 56631fd..463c74c 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -131,6 +131,9 @@ doStart() { if isTheServerRunning; then echo "The server is already running" else + tput sc + echo "The server is starting..." + arkserveropts=$serverMap # bring in ark_... options @@ -154,6 +157,8 @@ doStart() { # run the server in background nohup "$arkserverroot/$arkserverexec" "$arkserveropts" /dev/null 2>&1 & echo "$timestamp: start" >> "$logdir/arkserver.log" + tput rc; tput ed; + echo "The server is now up" fi } @@ -167,8 +172,9 @@ doStop() { # kill the server with the PID PID=`ps -ef | grep "$arkserverroot/$arkserverexec" | grep -v grep | awk '{print $2}'` kill -9 $PID - + tput rc; tput ed; + echo "The server has been stopped" echo "$timestamp: stop" >> "$logdir/arkserver.log" else echo "The server is already stopped" From 8e2d92f7674adff1596cb01effe7fbb890f1ebc4 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Wed, 24 Jun 2015 18:08:59 +0200 Subject: [PATCH 31/32] log output of ShooterGameServer and moved arkmanager logs to arkmanager.log --- tools/arkmanager | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 463c74c..ebb5469 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -34,6 +34,9 @@ GREEN="\\033[1;32m" RED="\\033[1;31m" NORMAL="\\033[0;39m" +arkmanagerLog="arkmanager.log" # here are logged the actions performed by arkmanager +arkserverLog="arkserver.log" # here is logged the output of ShooterGameServer + #--------------------- # functions #--------------------- @@ -155,8 +158,9 @@ doStart() { arkserveropts="${arkserveropts}?listen" # run the server in background - nohup "$arkserverroot/$arkserverexec" "$arkserveropts" /dev/null 2>&1 & - echo "$timestamp: start" >> "$logdir/arkserver.log" + echo "$timestamp: start" >> "$logdir/$arkserverLog" + nohup "$arkserverroot/$arkserverexec" "$arkserveropts" "$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 @@ -175,7 +179,7 @@ doStop() { tput rc; tput ed; echo "The server has been stopped" - echo "$timestamp: stop" >> "$logdir/arkserver.log" + echo "$timestamp: stop" >> "$logdir/$arkmanagerLog" else echo "The server is already stopped" fi @@ -255,11 +259,11 @@ case "$1" in ;; restart) doStop - echo "$timestamp: stop" >> "$logdir/arkserver.log" + echo "$timestamp: stop" >> "$logdir/$arkmanagerLog" sleep 10 doStart - echo "$timestamp: start" >> "$logdir/arkserver.log" - echo "$timestamp: restart" >> "$logdir/arkserver.log" + echo "$timestamp: start" >> "$logdir/$arkmanagerLog" + echo "$timestamp: restart" >> "$logdir/$arkmanagerLog" ;; install) doInstall From 12322876f0ee7fe0f86b9276ecc345f23cd702f9 Mon Sep 17 00:00:00 2001 From: FezVrasta Date: Wed, 24 Jun 2015 18:08:59 +0200 Subject: [PATCH 32/32] added Contributors line instead of putting them together with maintainers --- tools/arkmanager | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index ebb5469..c350fe7 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -3,7 +3,8 @@ # ARK: survival evolved manager # # Original author: LeXaT -# Maintainer: FezVrasta, Sispheor +# Maintainer: FezVrasta +# Contributors: Sispheor, Atriusftw, lexat, puseidr # Check the user is not currently running this script as root if [ "$(id -u)" == "0" ]; then