Jump to content
linuxmaster9

Having a hard time getting the Linux server to run right

Recommended Posts

So, let me preface this post by stating that I am not a novice at setting up and running servers. To clarify, Linux non-Arma servers. I am a Linux sys/net admin and setup and manage Apache/Nginx, MySQL, Samba, etc servers for a living. But, the dedicated server instructions for Arma 3 servers is driving me nuts.

 

For one thing, the fact that I had to specify mod folders like this: /\@mod_folder/\@mod_folder is counter-intuitive. That took a lot of trial and error to figure that part out. What should have been a simple setup was a 5 hour nightmare. Then comes the fact that for some reason, I can not have the server run in the background like a service under Systemd. I have written the daemon and service files and it fails to work. I am connected via SSH to the server and if I close the SSH connection, the server quits. So, in order to have the start.sh script I wrote continue running in the background I have to specifiy:

nohup ./start.sh &

 

 

to keep the server running when I close the SSH connection. I have never had to do something like this when setting up and running any other server under Linux. not to mention that this method does not create an RPT file. It creates a huge nohup file. One nohup file. Not separate files. Now, I run into the issue of getting my Wasteland server to connect to the ExtDB MySQL server.....it just wont.

 

So, I come to you all to get some instruction as I want to make this server run without hassle. I refuse to purchase a Windows server license. I have a dedicated server box via OVH. I am running Debian 8.1 x64. I setup a VNC server with XFCE4 for easier file management and administration when I don't feel like dealing with the server via CLI. I want to be able to run Headless client. I want to be able to specify the cores/threads that a server instance runs on. I want to be able to RCON. And, I want to have my A3 Wasteland server work as it should.

 

Please assist me in getting this up and running correctly. I wish to learn how to set up these servers correctly so that in the future I can help others.

 

Share this post


Link to post
Share on other sites

The NOHUP.OUT file is ~3GB in size. It contains around 3 million lines of text. Most of which say the following which I don't know why.

13:30:14 Server: Object 2:9005 not found (message Type_91)
13:30:14 Server: Object 2:9012 not found (message Type_91)
13:30:14 Server: Object 2:9025 not found (message Type_91)
13:30:14 Server: Object 2:9026 not found (message Type_91)
13:30:14 Server: Object 2:9030 not found (message Type_91)
13:30:14 Server: Object 2:9031 not found (message Type_91)
13:30:14 Server: Object 2:9039 not found (message Type_91)
13:30:14 Server: Object 2:9043 not found (message Type_91)
13:30:14 Server: Object 2:9044 not found (message Type_91)
13:30:14 Server: Object 2:9045 not found (message Type_91)
13:30:14 Server: Object 2:9046 not found (message Type_91)
13:30:14 Server: Object 2:9255 not found (message Type_91)
13:30:14 Server: Object 2:9264 not found (message Type_91)
13:30:14 Server: Object 2:9370 not found (message Type_91)
13:30:14 Server: Object 2:9371 not found (message Type_91)
13:30:14 Server: Object 2:9376 not found (message Type_91)
13:30:14 Server: Object 2:9580 not found (message Type_91)
13:30:14 Server: Object 2:9690 not found (message Type_91)
13:30:14 Server: Object 2:9691 not found (message Type_91)
13:30:14 Server: Object 2:9855 not found (message Type_91)
13:30:14 Server: Object 2:10130 not found (message Type_91)
13:30:14 Server: Object 2:10185 not found (message Type_91)
13:30:14 Server: Object 2:10186 not found (message Type_91)
13:30:14 Server: Object 2:10192 not found (message Type_91)
13:30:14 Server: Object 2:10193 not found (message Type_91)
13:30:14 Server: Object 2:11779 not found (message Type_91)
13:30:14 Server: Object 2:10225 not found (message Type_91)
13:30:14 Server: Object 2:10226 not found (message Type_91)
13:30:14 Server: Object 2:10232 not found (message Type_91)
13:30:14 Server: Object 2:10233 not found (message Type_91)
13:30:14 Server: Object 2:10237 not found (message Type_91)
13:30:14 Server: Object 2:10238 not found (message Type_91)
13:30:14 Server: Object 2:10471 not found (message Type_91)
13:30:14 Server: Object 2:10479 not found (message Type_91)
13:30:14 Server: Object 2:10593 not found (message Type_91)
13:30:14 Server: Object 2:10594 not found (message Type_91)
13:30:14 Server: Object 2:10600 not found (message Type_91)
13:30:14 Server: Object 2:10601 not found (message Type_91)
13:30:14 Server: Object 2:10860 not found (message Type_91)

Share this post


Link to post
Share on other sites

use tmux/screen with limited scrollback cache.

Share this post


Link to post
Share on other sites

use tmux/screen with limited scrollback cache.

been trying to figure out how to do that but it never seems to work. I only have SSH access to the server. No physical access.

Share this post


Link to post
Share on other sites

when was the last time you used TMUX over SSH? I have not been able to use the keybindings over SSH. The closest I have been able to get for remote access is installing vnc4server but I still run the issue of closing the session closes the apps.

Share this post


Link to post
Share on other sites

A lot of Linux boxes run with this script... or a modified version of this. Its modified arma2 for arma3... works just fine. 

 

I'm sure you can modify that for Headless client too...

 

by the way... you don't have to care about that mod folder name issue... just use "-mod=@mod1;@mod2" or '-mod=@mod1;@mod2' with linux.

 

hope that helps.

#!/bin/bash
#
# armaserver: ArmA 2 Linux Dedicated Server Control Script
#  (c) 2010 BIStudio
#  ArmA 2 binary version must be 1.04 or later
#
##
## slightly addapted by DaOarge for Arma3
##

#=======================================================================
#========               CONFIGURATION PARAMETERS                ========
#======== MUST BE EDITED MANUALLY TO FIT YOUR SYSTEM PARAMETERS ========
#=======================================================================
ARMA_DIR=/home/arma3
CONFIG=server.cfg
PORT=2302
PIDFILE=${ARMA_DIR}/${PORT}.pid
RUNFILE=${ARMA_DIR}/${PORT}.run
LOGFILE=${ARMA_DIR}/log.a3.${PORT}.txt
SERVER=${ARMA_DIR}/arma3server
OTHERPARAMS="-cpucount=2 -maxMem=2047"
#OTHERPARAMS="-cpucount=2 -mod=@mod1;@mod2;@mod3 -nosound -nologs"
#=======================================================================
ulimit -c 1000000

case "$1" in


    start)
	if [ -f ${RUNFILE} ]; then
	    $0 stop
	fi
	echo "Starting A3 PUBLIC server..."
	# file to mark we want server running...	
	echo "go" >${RUNFILE}
	# launch the background watchdog process to run the server
	nohup </dev/null >/dev/null $0 watchdog &
	;;
	
    stop)
	echo "Stopping A3 PUBLIC server..."
	if [ -f ${RUNFILE} ]; then
	# ask watcher process to exit by deleting its runfile...
	    rm -f ${RUNFILE}
	fi
	# and terminate ArmA 2 server process
	if [ -f ${PIDFILE} ]; then
	    kill -TERM $(< ${PIDFILE})
	    if [ -f ${PIDFILE} ]; then
		rm -f ${PIDFILE}
	    fi
	fi
	;;
	
	
    status)
	if [ -f ${RUNFILE} ]; then
	    echo "A3 PUBLIC server should be running..."
	else
	    echo "A3 PUBLIC server should not be running..."
	fi
	if [ -f ${PIDFILE} ]; then
	    PID=$(< ${PIDFILE})
	    echo "PID file exists (PID=${PID})..."
	    if [ -f /proc/${PID}/cmdline ]; then
		echo "Server process seems to be running..."
	    fi
	fi
	;;
	
	
    check)
	echo -n "ArmA 2 directory: ${ARMA_DIR} "
	if [ -d ${ARMA_DIR} ]; then
	    echo "OK"
	else
	    echo "MISSING!"
	fi
	
	echo -n "Server executable: ${SERVER} "
	if [ -x ${SERVER} ]; then
	    echo "OK"
	else
	    echo "ERROR!"
	fi
	
	echo "Port number: ${PORT}"
	
	echo -n "Config file: ${CONFIG} "
	if [ -f ${CONFIG} ]; then
	    echo "OK"
	else
	    echo "MISSING!"
	fi
	
	echo "PID file: ${PIDFILE}"
	echo "RUN file: ${RUNFILE}"
	
	;;

    restart)
	$0 stop
	$0 start
        ;;

    watchdog)
	# this is a background watchdog process. Do not start directly
	while [ -f ${RUNFILE} ]; do
	# launch the server...
	    cd ${ARMA_DIR}
	    echo >>${LOGFILE} "WATCHDOG ($$): [$(date)] Starting server (port ${PORT})..."
	    ${SERVER} >>${LOGFILE} 2>&1 -config=${CONFIG} -port=${PORT} -pid=${PIDFILE} ${OTHERPARAMS}
	    if [ -f ${RUNFILE} ]; then
		echo >>${LOGFILE} "WATCHDOG ($$): [$(date)] Server died, waiting to restart..."
		sleep 5s
	    else
		echo >>${LOGFILE} "WATCHDOG ($$): [$(date)] Server shutdown intentional, watchdog terminating"
	    fi
	done    
	;;
    *)
	echo "$0 (start|stop|restart|status|check)"
	;;
esac

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×