Jump to content

Native Linux server (with management scripts)


Alloc

Recommended Posts

2 hours ago, SylenThunder said:

If you're using Allocs scripts, why are you using steamcmd?

Just run "7dtd.sh updateenging --experimental"

I read the docs on the website today and didn't find any mention of this command. Maybe the OP had the same problem. "updateengine" is mentioned only once in the page describing the initial install (without mentioning "experimental"). But it should be listed at least in https://7dtd.illy.bz/wiki/Instance%20management. 

 

Does the command line utility have a help option? Is "--experimental" listed there?

 

Link to comment
Share on other sites

50 minutes ago, meganoth said:

I read the docs on the website today and didn't find any mention of this command. Maybe the OP had the same problem. "updateengine" is mentioned only once in the page describing the initial install (without mentioning "experimental"). But it should be listed at least in https://7dtd.illy.bz/wiki/Instance%20management. 

 

Does the command line utility have a help option? Is "--experimental" listed there?

 

Yes, that's how I verified the data before posting 😛
 

root@beta:~# 7dtd.sh help updateengine
Usage: 7dtd.sh updateengine [--check [--showinternal]] [--experimental | --stable] [--branch BRANCHNAME [--password BRANCHPASSWORD]] [--force]

Check for a newer version of engine (aka game) files of 7dtd. If there is a newer
version they will be updated by this command.

If neither --stable, nor --experimental nor --branch is specified the server will
updated to the latest build on the currently installed Steam branch of the game.

If --stable is specified the server will be switched to the
default public stable Steam branch of the game.

If --experimental is specified the server will be switched to the
latest_experimental Steam branch of the game.

If --branch SOMEBRANCH is specified the server will be switched to the
given Steam branch of the game. Additionally if password is required to acess
the branch this can be specified with the --password argument.
NOTE that --password is also required if you previously switched to a branch that
requires a password and want to update to the latest build on that branch now.

If --force is specified you are asked if you want to redownload the engine
even if there is no new version detected.

If --check is specified it will only output the current local and remote build ids
and if an update is available.
TFP internal branches are only shown if --showinternal is also given.
root@beta:~#
Link to comment
Share on other sites

  • 1 month later...

Hi Alloc, I have Stable 19 running with the latest Alloc Server Fixes installed and working, How ever i keep getting this error

 

Quote

2020-08-23T11:59:48 20670.655 ERR Error in ApiHandler.HandleRequest(): Handler GetPlayerList threw an exception:
2020-08-23T11:59:48 20670.656 EXC The given key was not present in the dictionary.
KeyNotFoundException: The given key was not present in the dictionary.
  at System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) [0x0001e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at AllocsFixes.PersistentData.Player.get_Entity () [0x00012] in <c042e81cab1b44d4bd119c65653e9b08>:0 
  at AllocsFixes.PersistentData.Player.get_LastPosition () [0x00008] in <c042e81cab1b44d4bd119c65653e9b08>:0 
  at AllocsFixes.NetConnections.Servers.Web.API.GetPlayerList.HandleRequest (System.Net.HttpListenerRequest _req, System.Net.HttpListenerResponse _resp, AllocsFixes.NetConnections.Servers.Web.WebConnection _user, System.Int32 _permissionLevel) [0x000e9] in <c10c26e2b66c4562ba86c962b02e1f48>:0 
  at AllocsFixes.NetConnections.Servers.Web.Handlers.ApiHandler.HandleRequest (System.Net.HttpListenerRequest _req, System.Net.HttpListenerResponse _resp, AllocsFixes.NetConnections.Servers.Web.WebConnection _user, System.Int32 _permissionLevel) [0x00069] in <c10c26e2b66c4562ba86c962b02e1f48>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
Logger:masterLogException(Exception)
Logger:Exception(Exception)
Log:Exception(Exception)
AllocsFixes.NetConnections.Servers.Web.Handlers.ApiHandler:HandleRequest(HttpListenerRequest, HttpListenerResponse, WebConnection, Int32)
AllocsFixes.NetConnections.Servers.Web.Web:HandleRequest(IAsyncResult)
System.Net.ListenerAsyncResult:InvokeCallback(Object)
System.Threading.QueueUserWorkItemCallback:System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
System.Threading.ThreadPoolWorkQueue:Dispatch()
System.Threading._ThreadPoolWaitCallback:PerformWaitCallback()
 
(Filename: <567df3e0919241ba98db88bec4c6696f> Line: 0)

 

Link to comment
Share on other sites

  • 1 month later...

Trying to update from A19 to A19.1 using 7dtd.sh updateengine on the public branch, but it's saying the latest is currently from before the copy I even have installed.

 

Quote

Engine is already at the newest build on the selected branch "public" (local: 5405736, remote: 4714812).

 

Here's the output I'm getting from the `updateengine --check`:

 

$ sudo 7dtd.sh updateengine --check
Installed:
  Build ID:     5405736
  Installed on: 2020-08-24 10:21:07
  From branch:  public

Available branches:
Branch                 | Build ID | Build set on
-----------------------+----------+--------------------
latest_experimental    |  5298960 | 2020-07-17 10:45:02
public                 |  4714812 | 2020-03-04 10:43:59
alpha18.4              |  4714812 | 2020-06-04 05:34:37
alpha18.3              |  4601329 | 2020-01-24 10:24:57
alpha18.2              |  4454973 | 2019-12-22 12:23:37
alpha18.1              |  4385749 | 2019-11-15 10:56:57
alpha18.0              |  4317498 | 2019-10-29 03:28:57
alpha17.4              |  3848769 | 2019-06-24 09:21:12
alpha16.4              |  2222523 | 2017-10-27 01:02:48
alpha15.2              |  1642899 | 2017-02-22 02:34:55
alpha14.7              |  1189196 | 2016-06-20 09:45:46
alpha13.8              |   963565 | 2016-03-22 03:56:25
alpha12.5              |   745252 |  ?
alpha11.6              |   658147 |  ?
alpha10.4              |   480993 |  ?
alpha9.3               |   385244 |  ?
alpha8.8               |   334790 |  ?

 

Is something screwy with Steam?

Link to comment
Share on other sites

  • 1 month later...

I'm not sure if this is the right place for this post, id not please let me know where to post it. I am having trouble generating a random world on my Linux dedicated server. I have an HP ProLiant DL 380 g5 server machine running 2 quad core 5450 Xeon processors with 64GB of RAM and an Integrated ATI ES1000 video chipset. I created an instance using the 7dtd.sh instance create command and started the instance. It starts to generate socket data and it hasn't finished it yet. I know that it should take awhile to generate an 8192k size map, but it has been running for 95 hours now. When it first started, there was quite a bit of activity on each of the cores, but now it seems like it isn't doing much of anything. I am including my config.xml and my current_output_log.txt file. I have not been able to successfully generate a ran world on alpha 19 yet. I would greatly appreciate any help.

 

 

config.xml current_output_log.txt

Link to comment
Share on other sites

5 minutes ago, spscwby said:

I'm not sure if this is the right place for this post, id not please let me know where to post it. I am having trouble generating a random world on my Linux dedicated server. I have an HP ProLiant DL 380 g5 server machine running 2 quad core 5450 Xeon processors with 64GB of RAM and an Integrated ATI ES1000 video chipset. I created an instance using the 7dtd.sh instance create command and started the instance. It starts to generate socket data and it hasn't finished it yet. I know that it should take awhile to generate an 8192k size map, but it has been running for 95 hours now. When it first started, there was quite a bit of activity on each of the cores, but now it seems like it isn't doing much of anything. I am including my config.xml and my current_output_log.txt file. I have not been able to successfully generate a ran world on alpha 19 yet. I would greatly appreciate any help.

 

 

config.xml 3.53 kB · 0 downloads current_output_log.txt 8.65 kB · 0 downloads

The log is incomplete. It started world generation, looks like it ran for a couple of hours, and after that the log just ends. Either it was an external crash, or the process was terminated abruptly.  The CPU you are using is similar to mine, but with less cores. Mine will take about 2 and a half hours to make the map. 

 

Based on this information, I'd say your server was still generating the map when it was terminated.

Link to comment
Share on other sites

11 minutes ago, spscwby said:

It is still running and has been for 96 hours now

The date on the last entry in your log is 2020-11-29T03:07:30. So since that time it's not doing anything. Either the process is a zombie, or it's frozen.

 

Personally, just make the map on your local client and then copy it to the server.

Link to comment
Share on other sites

11 minutes ago, spscwby said:

I will try that. Are there any changes I need to make to the config.xml ?

Copy the map folder into the client Worlds folder. /home/sdtd/engine/Data/Worlds

Then in the Config you will want to change line 25 from "RWG" to the name of the folder.

 

This is how we've been doing ours since a18 due to the server taking forever to make the maps.  This is something that is being worked on, and reminds me I need to go try a few gens in a20.

Link to comment
Share on other sites

  • 2 months later...

I'm reposting this from a thread that was more based on performance, but I may get a better response here: 

 

Quote

The Steam forum did mention that 7DTD is heavily dependent on single threaded performance, if I remember correctly.

 

 I am running a 12core Threadripper 1920X overclocked to 3.7Ghz (instead of the base 3.5Ghx) with a gob of RAM, but I'm not getting very respectable performance so far (perhaps due to an older video card).

 

Just a thought: Would it be worth while trying to run a 7DTD server instance separate, as well as a client instance on the same system to offload the ...offloadable tasks to different threads on the CPU? ...thus making the game more multi-threaded at the expense of other resources?

 

...I'm running on Kubuntu 21.04 (Early Adopter)

Link to comment
Share on other sites

  • 1 month later...
On 6/3/2014 at 10:06 PM, Alloc said:

Hi there,

 

as it was suggested to me I open a new thread on my management scripts and native Linux server support. This is basically following up on the thread Dedicated Server without hacky workarounds though this is in Linux Bugs where it might be overlooked.

 

I created a full set of management scripts for a Linux based 7dtd server. This allows basic operations like starting/stopping as well as advanced things like a few event hooks.

 

(This also includes native Linux engine files so you do not have to use workarounds like Wine to run 7dtd. Unfortunately these files are 32 Bit only so far but at least they can be run on 64 Bit hosts without any problems.) No longer valid, 7dtd provides "built in" 32 bit and 64 bit Linux support since A14

 

For the full documentation on the management scripts go to https://7dtd.illy.bz/.

 

Regards,

Alloc

thanks brother

Link to comment
Share on other sites

  • 5 months later...

I may have missed this somewhere somehow, but I am trying to have 2 instances running at the same time on my machine, one with 7 day bloodmoon and one with a daily bloodmoon. I can't seem to find where i can set the daily instance to 1day though. I know I can do this with a local game on my computer, but I was wanting to run both instances on my server that is using Alloc's linux installation scripts.

Link to comment
Share on other sites

 

On 9/24/2021 at 3:04 PM, Nathrak said:

I may have missed this somewhere somehow, but I am trying to have 2 instances running at the same time on my machine, one with 7 day bloodmoon and one with a daily bloodmoon. I can't seem to find where i can set the daily instance to 1day though. I know I can do this with a local game on my computer, but I was wanting to run both instances on my server that is using Alloc's linux installation scripts.

 

Would need to verify with @Alloc, but I think multi-instance support was removed a while back. Can probably still do it with some tinkering though.

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

Sorry, was not aware I was no longer following this thread until today ... Probably from the last forum update :(

 

On 2/23/2021 at 10:59 PM, Sigil_Thane said:

I'm reposting this from a thread that was more based on performance, but I may get a better response here: 

 

 

...I'm running on Kubuntu 21.04 (Early Adopter)

Yeah, running dedi + your client separately might help with performance vs running a listen server from the game (assuming the system has good enough specs in terms of cores + especially RAM, which seems to be the case for you).

 

On 9/24/2021 at 9:04 PM, Nathrak said:

I may have missed this somewhere somehow, but I am trying to have 2 instances running at the same time on my machine, one with 7 day bloodmoon and one with a daily bloodmoon. I can't seem to find where i can set the daily instance to 1day though. I know I can do this with a local game on my computer, but I was wanting to run both instances on my server that is using Alloc's linux installation scripts.

Just edit the config.xml for that one instance to say BloodMoonFrequency=1. I don't see what the issue would be without further info :)

Link to comment
Share on other sites

  • 1 month later...
On 9/24/2021 at 12:04 PM, Nathrak said:

I may have missed this somewhere somehow, but I am trying to have 2 instances running at the same time on my machine, one with 7 day bloodmoon and one with a daily bloodmoon. I can't seem to find where i can set the daily instance to 1day though. I know I can do this with a local game on my computer, but I was wanting to run both instances on my server that is using Alloc's linux installation scripts.

You may already know this but I just wanted to throw out that you should separate the running ports a bit .. don't put them to close together in sequence.  As an example I like to put my servers at least 10 port numbers apart. 

 

<property name="ServerPort" value="29243"/>

 on the second one do 

<property name="ServerPort" value="29253"/>

 

 

Link to comment
Share on other sites

  • 3 months later...

Sorry for the delayed response.

Basicalyl there's nothing special about restoring: Copy the folder of the save from the backup to the original location. Either overwriting files or even better delete the active version first to make sure all files will be in a consistent state of the backup. Afterwards only fix up ownership (default: "chown -R sdtd.sdtd <savefolder>").

Link to comment
Share on other sites

  • 4 weeks later...

Good afternoon. Perhaps this helps somebody. I'm a systems engineer dabbling for the first time into the world of game hosting. Set up two servers for 7dtd on linux.
When I set up my 2nd server, I got a SIGILL error and the server wouldn't start no matter what. I tried many configurations, reinstalled steamCMD, tried different operating systems (Linux Redhat 8.5 and Debian 11) and the error persisted.. The only difference between these two servers is that the one that ran without issues is an intel proc and the one with issues is AMD.

Finally after reinstalling RHEL 8.5 and reading and looking for answers I found out that the (temporary?) solution was to disable EOS from the config and now it works flawesly on my AMD dedicated server.

Hope this helps somebdy with a similar issue as I read somebody was having the same problem trying to run the gameserver under ubuntu server.

Link to comment
Share on other sites

  • 1 month later...
On 4/9/2022 at 1:13 PM, Alloc said:

Curious, what's the exact CPU model you use?


The one with issues as both client AND server ON LINUX is AMD Phenom II X4 3400Mhz 4 cores, 4 logicla processes. 

The problem has to do with the implementation of the EOS crossplatform service. 

Up to A20.3 the workaround was, for linux dedicated server, to remove EOS from platform.cfg

 

Now in a20.4 removing this line gets you two types of problems: 
As a server, your server starts but is unable to acquire an IP in the server browser. People are only able to connect via direct ip connection.

As a client (steam linux) the game doesn't start, removing the line crossplatform=EOS helps because the game starts but you are unable to join any active games. 


This doesn't affect the windows game client. I booted this system with a windows 10 hard disk installed steam and the game client and was able to join servers normally. Perhaps it has to do with mono? You probably are able to tell more than I do. 

If there's anything I can do to help, please message me. 

Alexia. 

On 4/9/2022 at 1:13 PM, Alloc said:

Curious, what's the exact CPU model you use?


Someone replicated the error by attempting to run a dedicated linux server on the same type of hardware and got the same type of error. 

Output log here: 

https://pastebin.com/PWM6wXa5

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...