Table of Contents

ArmA 2 Linux Dedicated Server Install

ArmA 2 Forum, ArmA 2 Home, ArmA 2 Config, ArmA 2 File Formats, ArmA 2 Missions, ArmA 2 3D Modeling, ArmA 2 Scripting, ArmA 2 Terrain, ArmA 2 Texturing, ArmA 2 Tools

How to install ArmA 2 Linux Dedicated Server.

In this example we call our Linux user “arma” and we make “arma2” directory in his home dir which states game ArmA 2, when ArmA 3 comes out we create, you guessed; “arma3” dir.

  1. install linux :)
  2. upload all ArmA 2 files including Expansion\Beta\ directory into your /home/arma/arma2/ directory.
    1. Or use ArmA 2 Linux Dedicated Server Steam Install instructions how to download using SteamCMD.
  3. download arma2oa server binary from BIS.
  4. unpack and run ./install

In 64 bit debian if you do not have the 32 bit libraries install them with:

apt-get install build-essential
apt-get install ia32-libs

Edit: August 2016 latest ubuntu don't have ia32-libs package anymore. You can get ArmA 2 server running by installing lib32stdc++6 instead, like this:

apt-get install lib32stdc++6

Configuring

The file “arma2oaserver” is your BIS provided starting script for the server binary.

Copy it to name of your liking for example “pmcbis-server” and “pmcvte-server” if you have two different setup's you want to run.

Edit the files and change the ARMA_DIR= to show:

ARMA_DIR=/home/arma/arma2

And CONFIG= to show:

CONFIG=server.cfg

See Security Notes!

And OTHERPARAMS= to show beta if you run it:

OTHERPARAMS="-cpucount=2 -beta=expansion/beta;expansion/beta/expansion"

Notice that any -mod= lines can be added in after the -beta line.

Then just start the server with command:

./pmcbis-server start

Stop it with command:

./pmcbis-server stop

You can query the status of the server with command:

./pmcbis-server status

Why two start scripts?

In our example we have “pmcbis-server” and “pmcvte-server” scripts, as the names suggest the first on is for BIS default no addons server and another is VTE mod server.

Our mod's server CONFIG= would show:

CONFIG=server_vte.cfg

Again, see Security Notes!

This is easy way to keep your server loaded with easily starting setup's.

Watching The Log

There might be lot of garbage in the log, in this example “dubbingradio”, then use command with grep like this:

tail -f log.bis.2302.txt | grep -v -e dubbing -e RadioProtocol -e "No speaker given"

Use the -e parameter to add each string you want to skip, if its not a single word, use quotes like in the no speaker given string.

Upgrading

  1. stop the server
  2. upload new binary to the dir, unpack it.
  3. run ./install
  4. start the server

All done.

Uploading Missions

When you upload missions to your ArmA 2 Linux Dedicated Server, you need to remember that you cannot overwrite old mission names, you need to add version number to the file name or something else, also when you do this you need to change the version number in the mission Name field in mission editor so you can actually pick the missions apart from each other in multiplayer lobby.

After the missions are uploaded, run ./tolower in the server root dir to make sure all missions are in lower case.

When you delete old missions from the server, you need to restart the server as it will crash if someone attempts to load the deleted mission.

Security Notes

You should place your server.cfg file outside of the arma root dir because hackers can access the root directory. Also the file name should be something unique and something that no hacker can guess. So lets say out of the blue something like this as an example:

CONFIG=su3jnv7xflgnsh5/serversh47cvkdfg3nbld.cfg

Wow, say that again?! Heh yes, looks horrible, but its pretty sure no hacker will guess that path + file name.

So you should make directory called:

/home/arma/arma2/su3jnv7xflgnsh5/

And place server cfg file there called:

serversh47cvkdfg3nbld.cfg

Remember the above is just an example and your own server should use unique path + file names to make them random so that nobody can guess their names!

Howto Run Two Servers in One Computer

So you want to run two ArmA 2 Dedicated Linux servers on one computer eh? Here is how you do it.

First of course you need to configure one basic working server (obvious).

Then you start to create additional directories for your second server, in our purpose we call that server directory “serverpmc”.

So here we go, first go to your working default server directory and issue commands:

mkdir serverpmc
mkdir serverpmc/mpmissions

Now you have the basic directories setup.

Then copy over the signature keys directory as most likely because you run two servers you run different addons (at least in our example) so you want individual keys directorys:

cp -r keys serverpmc/

Then we move the server config for your second server, in our example we call it server2.cfg:

mv server2.cfg serverpmc/

Also move the startup script which you use for second server, in our example we call it arma2oaserver2:

mv arma2oaserver2 serverpmc/

Now we are ready to go into the newly created directory, first we can make the symlinks there:

cd serverpmc
ln -s ../addons addons
ln -s ../basic.cfg basic.cfg
ln -s ../common common
ln -s ../dta dta
ln -s ../expansion expansion
ln -s ../server server
ln -s ../x x

Notice the 'x' directory, that is what we at PMC Tactical call our user made addons dir, for example we have <serverroot>/x/vte/ for Vietnam: The Experience mod and <serverroot/x/pmc_51km_desert/ for PMC 51km Desert terrain. Simple to story all mods in one nice directory.

Now you have created the necessary symlinks. Final step is to edit your arma2oaserver2 startup script and setup this new directory as home directory and possible the config as well as log file names.

All done, then just copy your individual missions into mpmissions/ dir for this server and run ./arma2oaserver2 start to launch your second server :)