Hi everybody! I just installed a dedicated server on Debian Jessie for a LAN party and i thought maybe someone wants to know how to do this. I used some Infos from the other thread here in the mods section and cut out the pastats/mods part (since its used for LAN only) and debianized it Whenever you see a # before the command it means to execute it as root. When you see a $ it means run as your normal user. Let's start with some packages that needs to be installed: # apt-get install mercurial golang libgl1-mesa-glx On your user account let's make a directory for PA and get papatcher to download the game: $ cd $ mkdir pa $ cd pa $ hg clone h t t p s://bitbucket.org/papatcher/papatcher $ go run papatcher/papatcher.go Enter your Uber account name/passwort and the game will download. I made a small startscript to quickly change the servername or parameters if needed. Paste it into a new file: $ nano run_server Code: #!/bin/bash PA_NAME="PA Titty Twister" PA_PATH="~/.local/Uber Entertainment/Planetary Annihilation/stable" exec "$PA_PATH"/server --headless --game-mode config --allow-lan \ --server-name "$PA_NAME" exit 0 $ chmod +x run_server This would be it. You can test if the server starts with: $ ./run_server Now comes the fun part! Since you want it to run even when you disconnect your ssh session and it also should auto restart on crash/exit you need something more. Alot of people use screen/byobu/tmux or nohup for this. But since Debian has the awesome systemd init system you can use this to keep your server running. We use the systemd user mode. This way you can start/stop/restart your server and see the logs without root. Install the service file: $ cd $ mkdir -p .config/systemd/user Paste this into the file and replace <user> with your user account name: $ nano .config/systemd/user/pa.service Code: [Unit] Description=Planetary Annihilation Dedicated Server [Service] Restart=always ExecStart=/home/<user>/pa/run_server [Install] WantedBy=default.target Let the systemd user instance run even if not logged in. Again replace <user>. Run as root: # loginctl enable-linger <user> Add your user to the systemd journal group to see logs: # adduser <user> systemd-journal Ok. Now its really over ;-) Start your server with: $ systemctl --user start pa.service Stop your server with: $ systemctl --user stop pa.service Restart your server with: $ systemctl --user restart pa.service See the status of your server with: $ systemctl --user status pa.service Code: $ systemctl --user status pa.service ● pa.service - Planetary Annihilation Dedicated Server Loaded: loaded (/home/server/.config/systemd/user/pa.service; enabled) Active: active (running) since Do 2014-10-23 20:30:50 CEST; 41s ago Main PID: 9346 (server) CGroup: /user.slice/user-1002.slice/user@1002.service/pa.service └─9346 ~/.local/Uber Entertainment/Planetary Annihilation/stable/server --headless --gam... Okt 23 20:30:50 Viki systemd[5119]: Started Planetary Annihilation Dedicated Server. Okt 23 20:30:50 Viki run_server[9346]: [20:30:50.536] INFO Setting STEAM_RUNTIME to /home/serve...time Okt 23 20:30:50 Viki run_server[9346]: [20:30:50.536] INFO SDL: Built w/ v2.0.3, linked w/ v2.0.3 Okt 23 20:30:50 Viki run_server[9346]: [20:30:50.537] INFO Loaded buildID 2014101573939 Okt 23 20:30:50 Viki run_server[9346]: [20:30:50.537] WARN Crash reporting disabled. Okt 23 20:30:50 Viki run_server[9346]: [20:30:50.537] INFO Starting background thread pool with...eads Okt 23 20:30:50 Viki run_server[9346]: [20:30:50.537] INFO GameServerImpl::resetModUpdateAuthTo...e1f" Hint: Some lines were ellipsized, use -l to show in full. It will be restartet on every type of crash or normal exit. If no players are connected it seems to exit itself after 5 minutes. systemd will restart it then. If you want to see the output of the server while playing you can look into the journal in follow mode: $ journalctl -f --user-unit pa.service Thats it! Have fun!
Of course. Who wants to run a server on windows. Btw...missed something: Enable to start on boot: $ systemctl --user enable pa.service Disable start on boot: $ systemctl --user disable pa.service
Can someone answer two questions for me? 1. Why is Linux better than Windows for running the server? 2. If PA was not developed for Linux, would the server still be running on Linux?
Linux does not use resources for it's OS like Windows does. No offence, but my best friends brother, he has trouble reading, and he is taking computer work classes, and his linux test had that as a question. What are the practical benefits of Linux? Linux can allot more of the system resources on a server or large program or process, because it takes less resources to run the main screen on idle instead. And of course not, if it don't run on linux and uses windows libraries like directx, then it won't run on linux. The server might since it less likely needs directx to just run the server. However, the point of programming things to run on linux, is because people using windows are only doing so for popularity. Deciding to use Windows is like deciding the ideal weight is 90 lbs. Because it isn't. That is just what people insist.
1. Seeing as how the limiting factor for PA appears to be the single thread CPU performance I really doubt it matters which OS you use. I'd say you should host on whichever OS you're more comfortable administering. I span up a Linux virtual server because it was cheaper per hour than a Windows one. 2. Only if the server component had been developed for Linux.
Windows uses quite a bit more resources than Linux, most servers of ANY game or website are run on Linux machines.
He said the server, not servers in general. The reasons for the popularity of Linux in the cloud market are many and complex, and have nothing to do with which is best for PA. Hourly cost is far more relevant, as is your ability to administer it in the first place.
The Update Procedure Stop your server: $ systemctl --user stop pa Update the papatcher tool: $ cd $ cd pa/papatcher/ $ hg pull $ hg update Update the pa game files: $ go run papatcher.go -update-only Start your server again: $ systemctl --user start pa