diff --git a/tools/arkdaemon b/tools/arkdaemon old mode 100644 new mode 100755 index 5fb27d9..853c88e --- a/tools/arkdaemon +++ b/tools/arkdaemon @@ -9,21 +9,15 @@ # ### END INIT INFO -# NOTICE: this daemon can work only if your system supports start-stop-daemon - # Using the lsb functions to perform the operations. . /lib/lsb/init-functions # Global variables -source /etc/arkdaemon.cfg -source /home/${steamuser}/.arkmanager.cfg +source /etc/arkmanager/arkmanager.cfg -NAME=arkmanager_daemon -DESC="ARK manager daemon used to start the server and keep it updated" -PIDFILE="/var/run/${NAME}.pid" +NAME="ShooterGameServer" LOGFILE="${logdir}/${NAME}.log" -DAEMON="arkmanager" -START_OPTS="--pidfile ${PIDFILE} --user=${steamuser} ${DAEMON}" +DAEMON="/usr/bin/arkmanager" set -e @@ -33,7 +27,9 @@ test -x $DAEMON || exit 5 case "$1" in start) log_daemon_msg "Starting" "$NAME" - if start-stop-daemon -b --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON ; then + sudo -u $steamcmd_user $DAEMON start + PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'` + if [ -n "$PID" ]; then log_end_msg 0 else log_end_msg 1 @@ -42,28 +38,26 @@ case "$1" in stop) log_daemon_msg "Stopping" "$NAME" - kill ${cat $PIDFILE} - echo "$NAME." - rm -f $PIDFILE + sudo -u $steamcmd_user $DAEMON stop + PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'` + if [ -n "$PID" ]; then + log_end_msg 1 + else + log_end_msg 0 + fi ;; - restart|force-reload) - $0 stop && sleep 2 && $0 start + restart) + sudo -u $steamcmd_user $DAEMON restart ;; status) - # Check the status of the process. - PID=`ps -ef | grep $DAEMON | grep -v grep | awk '{print $2}'` - if [ -n "$PID" ]; then - echo "$NAME is running on PID $PID" - else - echo "$NAME is not running" - fi + sudo -u $steamcmd_user $DAEMON status ;; *) # For invalid arguments, print the usage message. - echo "Usage: $0 {start|stop|restart|status|force-reload}" + echo "Usage: $0 {start|stop|restart|status}" exit 2 ;; esac diff --git a/tools/arkmanager b/tools/arkmanager index 1fabd9f..8e86ae8 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -109,8 +109,7 @@ function isTheServerRunning(){ # If the server is listenning on his port return 0, else return 1 # function isTheServerUp(){ - PORT="7779" - lsof -i |grep $PORT > /dev/null + lsof -i |grep $arkserverport > /dev/null result=$? return $result } @@ -123,7 +122,7 @@ doStart() { if isTheServerRunning; then echo "The server is already running" else - arkserveropts="TheIsland?SessionName=$sessioname?QueryPort=$arkqueryport?Port=$arkserverport?ServerPassword=$arkserverpass?ServerAdminPassword=$arkserverapass?listen" + arkserveropts="TheIsland?SessionName=$sessioname?QueryPort=$arkqueryport?ServerPassword=$arkserverpass?ServerAdminPassword=$arkserverapass?listen" thejob="$arkserverroot/$arkserverexec $arkserveropts" screen -dmS "$servicename" $thejob echo "$timestamp: start" >> "$logdir/arkserver.log" @@ -138,7 +137,7 @@ doStop() { if isTheServerRunning; then echo "Stopping server..." screen -X -S "$servicename" -X stuff "^C" - sleep 30 + sleep 10 echo "$timestamp: stop" >> "$logdir/arkserver.log" tail -n 1 "$logdir/arkserver.log" else diff --git a/tools/arkmanager.cfg b/tools/arkmanager.cfg index 8789e68..e807853 100644 --- a/tools/arkmanager.cfg +++ b/tools/arkmanager.cfg @@ -8,7 +8,7 @@ sessioname=YourLinuxSessionName 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="7779" # ARK server port (default 7779) +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!