Merge branch 'master' into dev#1.1

This commit is contained in:
Sispheor 2015-06-21 21:04:02 +02:00
commit ba9775df52
4 changed files with 29 additions and 29 deletions

41
tools/arkdaemon Normal file → Executable file
View File

@ -1,3 +1,4 @@
#!/bin/bash
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: ARK manager deamon # Provides: ARK manager deamon
# Required-Start: networking # Required-Start: networking
@ -9,21 +10,15 @@
# #
### END INIT INFO ### END INIT INFO
# NOTICE: this daemon can work only if your system supports start-stop-daemon
# Using the lsb functions to perform the operations. # Using the lsb functions to perform the operations.
. /lib/lsb/init-functions . /lib/lsb/init-functions
# Global variables # Global variables
source /etc/arkdaemon.cfg source /etc/arkmanager/arkmanager.cfg
source /home/${steamuser}/.arkmanager.cfg
NAME=arkmanager_daemon NAME="ShooterGameServer"
DESC="ARK manager daemon used to start the server and keep it updated"
PIDFILE="/var/run/${NAME}.pid"
LOGFILE="${logdir}/${NAME}.log" LOGFILE="${logdir}/${NAME}.log"
DAEMON="arkmanager" DAEMON="/usr/bin/arkmanager"
START_OPTS="--pidfile ${PIDFILE} --user=${steamuser} ${DAEMON}"
set -e set -e
@ -33,7 +28,9 @@ test -x $DAEMON || exit 5
case "$1" in case "$1" in
start) start)
log_daemon_msg "Starting" "$NAME" 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 log_end_msg 0
else else
log_end_msg 1 log_end_msg 1
@ -42,28 +39,26 @@ case "$1" in
stop) stop)
log_daemon_msg "Stopping" "$NAME" log_daemon_msg "Stopping" "$NAME"
kill ${cat $PIDFILE} sudo -u $steamcmd_user $DAEMON stop
echo "$NAME." PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'`
rm -f $PIDFILE if [ -n "$PID" ]; then
log_end_msg 1
else
log_end_msg 0
fi
;; ;;
restart|force-reload) restart)
$0 stop && sleep 2 && $0 start sudo -u $steamcmd_user $DAEMON restart
;; ;;
status) status)
# Check the status of the process. sudo -u $steamcmd_user $DAEMON status
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
;; ;;
*) *)
# For invalid arguments, print the usage message. # 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 exit 2
;; ;;
esac esac

View File

@ -109,8 +109,7 @@ function isTheServerRunning(){
# If the server is listenning on his port return 0, else return 1 # If the server is listenning on his port return 0, else return 1
# #
function isTheServerUp(){ function isTheServerUp(){
PORT="7779" lsof -i |grep $arkserverport > /dev/null
lsof -i |grep $PORT > /dev/null
result=$? result=$?
return $result return $result
} }
@ -123,7 +122,7 @@ doStart() {
if isTheServerRunning; then if isTheServerRunning; then
echo "The server is already running" echo "The server is already running"
else 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" thejob="$arkserverroot/$arkserverexec $arkserveropts"
screen -dmS "$servicename" $thejob screen -dmS "$servicename" $thejob
echo "$timestamp: start" >> "$logdir/arkserver.log" echo "$timestamp: start" >> "$logdir/arkserver.log"
@ -138,7 +137,7 @@ doStop() {
if isTheServerRunning; then if isTheServerRunning; then
echo "Stopping server..." echo "Stopping server..."
screen -X -S "$servicename" -X stuff "^C" screen -X -S "$servicename" -X stuff "^C"
sleep 30 sleep 10
echo "$timestamp: stop" >> "$logdir/arkserver.log" echo "$timestamp: stop" >> "$logdir/arkserver.log"
tail -n 1 "$logdir/arkserver.log" tail -n 1 "$logdir/arkserver.log"
else else

View File

@ -8,7 +8,7 @@ sessioname=YourLinuxSessionName
arkserverroot="/home/steam/ARK" # path of your ARK server files (default ~/ARK) arkserverroot="/home/steam/ARK" # path of your ARK server files (default ~/ARK)
arkserverexec="ShooterGame/Binaries/Linux/ShooterGameServer" # name of ARK server executable arkserverexec="ShooterGame/Binaries/Linux/ShooterGameServer" # name of ARK server executable
arkqueryport="27016" # ARK query port (default 27016) 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 arkserverpass="SERVERPASSWORD" # ARK server password, empty: no password required to login
arkserverapass="ADMINPASSWORD" # ARK server admin password, KEEP IT SAFE! arkserverapass="ADMINPASSWORD" # ARK server admin password, KEEP IT SAFE!

View File

@ -5,9 +5,15 @@ if [ ! -z $1 ]; then
cp arkmanager /usr/bin/arkmanager cp arkmanager /usr/bin/arkmanager
chmod +x /usr/bin/arkmanager chmod +x /usr/bin/arkmanager
# Copy arkdaemon to /etc/init.d and set permissions # Copy arkdaemon to /etc/init.d ,set permissions and add it to boot
cp arkdaemon /etc/init.d/arkdaemon cp arkdaemon /etc/init.d/arkdaemon
chmod +x /etc/init.d/arkdaemon chmod +x /etc/init.d/arkdaemon
# add to startup if the system use sysinit
if [ test -x /usr/sbin/update-rc.d ]; 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 # Create a folder in /var/log to let Ark tools write its own log files
mkdir -p /var/log/arktools mkdir -p /var/log/arktools