Jump to content

Native Linux server (with management scripts)


Alloc

Recommended Posts

In this particular instance, I'm attempting to update to the experimental_u52 version, which in the end, it doesn't actually do anyway since it just verifies the files without actually making any changes. I'll have to wipe the folders and re-install it to get the u52 build.

 

The assertion failures concerns me a bit though. I don't know if it's nothing, or if it's a sign of a deeper issue in my server I haven't noticed yet.

SteamCMD stuff ... can't do much about it but will do a quick test with a fresh U1604 install later on. Were you trying to "update" from experimental to exp_u52 or no install to exp_u52? Did you actually change the scripts as by default u52 isn't used at all with the scripts?

 

 

P.S. Something else I noticed on the initial run. It looks like you added the pre-requisite installers into the initial build install.

Didn't get that one ... haven't changed anything in a looong time on the bootstrapper script.

Link to comment
Share on other sites

I manually edited the scripts so that when I used --experimental, it would get the stable_u52 version.

 

I was getting that when I had wiped the Engine folder and was re-installing. Because for some reason, even using --force it only verifies the files, and does not actually install the different version.

 

That's odd with the bootstrapper. I swear when I ran it after the system wipe it ran the installers for the pre-requisites and they failed because they were already installed. I'll have to try that again this weekend.

 

So far I absolutely cannot run either the stable, or the experimental u52 version at all. (Not in 32-bit nor 64-bit) I've stuck with the stable 32-bit version for now. More experimentation is needed to figure out why the u52 builds cannot read xml files in 64-bit and give pulseaudio errors in 32-bit.

 

When a15 hits, I'll probably just have to give up hosting because I cannot afford newer hardware.

Link to comment
Share on other sites

I manually edited the scripts so that when I used --experimental, it would get the stable_u52 version.

Ah, ok, will try.

 

I was getting that when I had wiped the Engine folder and was re-installing. Because for some reason, even using --force it only verifies the files, and does not actually install the different version.

If SteamCMD is asked to validate the files it will also replace everything that doesn't match the selected branch. Meaning it should definitely "install" whatever you selected. Every other behaviour would be a bug in SteamCMD but I never got that to happen so far.

 

That's odd with the bootstrapper. I swear when I ran it after the system wipe it ran the installers for the pre-requisites and they failed because they were already installed. I'll have to try that again this weekend.

Yeah, the bootstrapper does install the prereqs on Debian based systems / systems using APT. But it's been that way for a looooong time now ;)

 

So far I absolutely cannot run either the stable, or the experimental u52 version at all. (Not in 32-bit nor 64-bit)

Hm, will see if I get the same issue. Normally there should be absolutely no reason having to use the u52 builds for the dedicated build, especially on Linux.

 

When a15 hits, I'll probably just have to give up hosting because I cannot afford newer hardware.

Sorry about that part :(

Though I thought you could still run the 32 bit build just as before?

Link to comment
Share on other sites

Tested, no issue switching (i.e. no fresh install) from experimental to stable_u52, no issue getting a fresh stable_u52.

With the u52 build no issue with either x86 nor x86_64.

 

What locale do you have set for your system? en_US?

Link to comment
Share on other sites

Yeah, it's en_US. I'm starting to get some odd errors on the 32-bit running now. Nothing really apparent, but after the server has been up a while it starts doing weird things. I was initially thinking it was just due to system load being too high, but after monitoring it for a bit the past few days, system load appears to be just fine. So I'm either having core issues with 16.04, or something more sinister is happening, and with my luck that's a hard drive. (Since that's the only component I don't have a spare for.)

Going to have to crawl into the basement and poke the hardware this weekend. It really irks me that the CPU's are SSE3, but the system is only capable of reading SSE2. LOL.

Link to comment
Share on other sites

@Alloc

 

Hey good work with all the latest updates.

Have moved all my telnet calls over to the WebAPI now and man it's so much quicker and more robust. It's such an improvement being able to send commands to the console through the WebAPI, even if it has made half my code obselete :D

 

So, the reason for visiting - Do you think it would be okay to run two concurrent instances of the server manager under different usernames? Ie - my default existing install runs under the sdtd user as defaulted in the setup scripts, what if I installed another copy under a different user? Would the two be able to run concurrently? The reason I am interested is that I would like to start developing a modded server and any changes made to files in the engine folder apply to all instances. With a default config, it is not possible to run both a modded and vanilla server concurrently with a single instance manager.

 

Thanks for your time :)

Zig.

Edited by zigstum
came back after coffee (see edit history)
Link to comment
Share on other sites

So I'm either having core issues with 16.04, or something more sinister is happening, and with my luck that's a hard drive. (Since that's the only component I don't have a spare for.)

 

Hey Sylen :)

I've stuck to Ubuntu 14.04 because it's what I have used before and I know it works. I am reluctant to switch OS version because you never know what problems will arise - I guess it's years of webdev have taught me that if it ain't broken... Recently though I've become more and more interested in changing OS, either upgrading ubuntu to 16.04 or switching to debian. Could you tell me what OSes you have run the server on and if you have noticed any difference in the server behaviour between them.

We've really struggled to get a map to last over 600 days with 20+ slots. When the map first runs, the loads are low and the server is snappy, but after five hundred unique players have joined, and the map has been explored, the loads steadily climb until I have to reduced slots to keep them manageable. This specific wipe, after about 300 days, one of the cores would max at 100% as soon as the server was started, even before players joined. It would not stay on the same core at 100% but move all around swapping cores, but yet, always 100%.

I've checked on the servers that manage to last a few thousand days, with 20ish slots and they were all running windows without exception. I've already asked and been reassured that there should be no difference in the running of the dedi on either win or lin, but I'm becoming convinced that there is something about U14.04 that doesn't like the dedi. We have an I7 6700K with 32GB DDR4, and when the map is a few hundred days old, the load will be around 6-8 (octo-core) with only 14 players online.

What do you think?

Thanks :)

Zig.

Link to comment
Share on other sites

Have moved all my telnet calls over to the WebAPI now and man it's so much quicker and more robust. It's such an improvement being able to send commands to the console through the WebAPI, even if it has made half my code obselete :D

Glad you like it. Though you should be aware that handling web requests is *a lot* heavier than a single constant TCP connection (as long as you don't use a new one for every single query ;) though even then it would probably be less heavy). So I wouldn't use it for running 20 commands a second or something like that but it should be totally fine for e.g. one a second. Though in the end you'll just have to see how it turns out regarding performance :)

 

Do you think it would be okay to run two concurrent instances of the server manager under different usernames?

Shouldn't hurt. But probably way harder to do than "just" create a new set of "commands" for the normal install like updateengine2, start2 etc and point these to an engine2 folder.

 

 

 

<big wall of text snip ;P >... there should be no difference in the running of the dedi on either win or lin...<another snip>

Well, if you're talking about me ... I said our code didn't make any important differences there. But no one knows how much difference there is in Unity itself ;)

As well as plain OS differences like file handling etc. Wonder if it could somehow simply be related to the number of open file handles or something like that.

Link to comment
Share on other sites

So I wouldn't use it for running 20 commands a second or something like that but it should be totally fine for e.g. one a second. Though in the end you'll just have to see how it turns out regarding performance :)

 

Yep! We tried a multi-threaded app to send commands to webAPI and it went really badly :D

 

Shouldn't hurt. But probably way harder to do than "just" create a new set of "commands" for the normal install like updateengine2, start2 etc and point these to an engine2 folder.

Okay, will go down this route, thanks :)

 

 

 

Well, if you're talking about me ... I said our code didn't make any important differences there. But no one knows how much difference there is in Unity itself ;)

As well as plain OS differences like file handling etc. Wonder if it could somehow simply be related to the number of open file handles or something like that.

Ahh, thanks for clarifying, this makes a lot of sense. I did have a real struggle getting the ulimit increased for the sdtd user as it has no login shell (quite rightly for security reasons), and therefore the increased ulimit was not getting loaded, but I got there eventually and learnt alot on the journey. We wiped yesterday, so I don't expect to see any problems for a few weeks, but I guess I'm gonna have to rent a test machine on another OS and get my regulars to help me out with testing.

 

Thanks again Alloc :D

Zig.

Link to comment
Share on other sites

New here. Wanted to say thank you to Alloc for making these wonderful tools. I love being able to run instanced servers inside of a single machine. I have one big question?

 

How do I install mods like SteelMOD and ValMOD into an instanced server?

 

I'm running Ubuntu Server 16.04 LTS headless

 

The hardware is:

2x Xeon L5640 6 Core CPU's

144GB DDR3 Memory

Currently on a 3 disk RAID0 (soon to upgrade to a 4 disc SSD RAID 0)

 

I'm running my server on a VM in ESXi6u2

 

I would like to have at least 3 servers running. 1 Vanilla, 1 SteelMOD, and 1 ValMOD.

How do I go about setting up the modded servers in instances so I can manage all the updates with a single console along with the back-up. Thank you for any help.

 

Oh and how much memory is usually required for say a 16 player server?

Edited by Maglin (see edit history)
Link to comment
Share on other sites

How do I install mods like SteelMOD and ValMOD into an instanced server?

You'll have to ask the authors about that.

 

How do I go about setting up the modded servers in instances ...

Unfortunately that's not possible. Also not planned to add something like this as in future mod control should be part of the server config anyway.

 

Oh and how much memory is usually required for say a 16 player server?

No idea, but others might chime in on this one :)

Link to comment
Share on other sites

How do I install mods like SteelMOD and ValMOD into an instanced server?

You'd need to make more than one engine folder for this. You cannot currently run 3 differnt instances as you have laid out because there is only one 'engine' folder. If you change the files in there (as ValMod and others require), then it affects all instances, as they all reference the same engine folder. I ask the same question a few posts up.

 

I'm running Ubuntu Server 16.04 LTS headless

I'm running my server on a VM in ESXi6u2

Out of interest, which OS are you running in the VM?

 

Oh and how much memory is usually required for say a 16 player server?

Roughly 500MB per connected client.

Link to comment
Share on other sites

Out of interest, which OS are you running in the VM?

 

So ESXi is my level 1 Hypervisor on which many VM's run. Two of them will be for 7DTD servers. Those servers are running Ubuntu 16.4 Server. I wanted to server multiple Modded servers just to help the community, but I looks like one is all I'm going to be able to do then. I already have my Vanilla server running in a different VM and wanted to move it to this one but I'm going to just change the main engine files in this one for SteelMod. Thank you for the replys. I look forward to the release of 7DTD. It's such a fun game.

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

Eww I know this sounds stupid but as this is my first linux 7DTD setup I can defend myself with that :D.

I have successfully built and ran the server on Centos 7 64x; I can connect to game from my home computer - log out - login again and all my info is remaining (such as position, map, player profiles and inventories).

My problem is that I don't know where the server stores all that info, I thought that they would be stored at /home/sdtd/instances/<game name> but no, there's nothing but admins-, config- and players.xmls .pid files and 'logs' -folder.

I have tried to find the files by looking for my <SteamID>.map file but found none.

And as I want to transfer my saves from my home computer to server; it's a problem if I don't know where to put my saves.

As I earlier told the server stores the player- and mapdata to somewhere but not in instances folder, so if anyone could enlighten me where to find these files I would appreciate it a lot :)

 

~demc~

Link to comment
Share on other sites

It should indeed be in the instance-folder, being either a "Navezgane" or "Random Gen" subfolder. If it's really not there then something is wonky, a log might help. Default location of the game if it's not overridden at all would be ~/.local/share/7DaysToDie.

Link to comment
Share on other sites

Okey I figured it out.

Server/script didn't generate the 'Random Gen' -folder or at least it wasn't showing up in file manager and thus I didn't find the files. I re-installed the server and game and after that it generated the 'Random Gen' -folder properly.

Thank you Alloc for giving a tip :>

Link to comment
Share on other sites

I can't seem to get the server to stay running. Everytime I try to run the script it happens. I've tried running it as root, reinstalling, making a new instance. nothing seems to work. Any ideas?

 

###:/home/sdtd/instances/14-7_server_2$ 7dtd.sh start 14-7_server_2
Done!
###:/home/sdtd/instances/14-7_server_2$

Link to comment
Share on other sites

I can't seem to get the server to stay running.

Everytime I try to run the script **it** happens.

 

We need to see the log file.

They will be in /home/sdtd/instances/14-7_server_2/logs/XXXX_output_log.txt

 

Unless of course, by **it** you mean the terminal output.

If you are expecting the console to retain the cursor while the server is running, and based on that you think the server is not running, then you should know it runs in the background. Once you start the server, it will run behind the scenes and return your terminal to you.

 

If, by **it**, you mean something else, then you need to say what the something else is, and show the log file.

Link to comment
Share on other sites

Hey Alloc :)

I'm just looking at using the backup system offered in the server scripts (7dtd.sh backup) and I have a question.

What would happen if the instance was attempted to be started while the backup is in operation?

I have a cron entry that runs every two mins in case of a server crash - 7dtd.sh start my_instance.

What will happen if that cron is run after a backup operation has been started?

Is there a lock file set once the back up starts?

Or do I need to set that up myself to stop the start command being issued while backing up is taking place.

All this assumes that the backup operation stops the server before beginning, which is the obvious conclusion when reading;

 

# How many seconds should stopping wait for the instance to shutdown
export STOP_WAIT=5

 

in 7dtd.conf

 

Thanks for your time, I imagine you are pretty busy with A15 looming.

Zig.

Link to comment
Share on other sites

That STOP_WAIT is for the stop-command. It's the timeout before it force-kills the process.

 

The backup thing doesn't do anything about starting/stopping/whatever an instance. It will simply ask rsync to copy the files. I'm using it on an hourly schedule and so far didn't ever run into any issue with that.

Link to comment
Share on other sites

That STOP_WAIT is for the stop-command. It's the timeout before it force-kills the process.

 

The backup thing doesn't do anything about starting/stopping/whatever an instance. It will simply ask rsync to copy the files. I'm using it on an hourly schedule and so far didn't ever run into any issue with that.

 

Was just coming back here to edit my post and say that I had worked that out :D

 

Thanks Alloc!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...