Linux server

Suggestions, ideas and general discussion about JoinFS.
spencercw
Posts: 4
Joined: Mon Nov 20, 2017 9:12 pm

Linux server

Postby spencercw » Mon Nov 20, 2017 9:28 pm

Hi Peter,

I am the sysadmin for a virtual airline and there has been some desire expressed by the membership for having a stable IP or DNS name to use by hosting JoinFS on our server. Our server runs Linux so this looks to be something of a challenge. As far as I can tell I would need to install 32-bit Wine along with its huge set of dependencies as well as the 32-bit Linux subsystem, which I don't particularly want to do on our production server. It's not entirely clear to me whether this would work anyway because it's a headless server so there's nowhere for the GUI to run.

Since JoinFS is a .NET application I wonder whether it could be ported to .NET Core in a headless variant suitable for servers? .NET Core can run on Windows, Linux and Mac OS so this would seem like an ideal solution.

Thanks for your consideration.

Chris

User avatar
Peter
Site Admin
Posts: 1278
Joined: Fri Sep 23, 2016 8:51 am

Re: Linux server

Postby Peter » Mon Nov 20, 2017 10:51 pm

Hi Chris,

I believe someone has indeed tried successfully to run JoinFS under Wine on Linux, so that would be a good solution. It's a while since I used linux, but doesn't the package manager take care of the dependencies. Or are you trying to keep it as a relatively clean installation? It doesn't matter too much about the headless server issue as JoinFS can run from the command line with a set of options, so that shouldn't pose a problem.

JoinFS does include a dll, so whether that would work with .NET Core I don't know. I think Wine might be the best solution with the current state of things. Hopefully the person who tried Wine will chime in to confirm that it's a viable enough solution.

Peter

spencercw
Posts: 4
Joined: Mon Nov 20, 2017 9:12 pm

Re: Linux server

Postby spencercw » Tue Nov 21, 2017 6:10 pm

Hi Peter,

Part of the problem is, there's no 32-bit system libraries installed of any description. This is not uncommon on Linux servers where it's exceptionally rare to need to run anything other than your native architecture (in my case, 64-bit). The amount of stuff I'd need to install to get Wine working would make your eyes water. Combined with the fact that Wine itself is very big and complex, it's not something I'm keen on doing in a security-sensitive environment and where it could impact on the other services running on the same box.

To my knowledge, I don't think it's possible to just run a .NET Framework application using .NET Core; I think it needs to be explicitly recompiled to use .NET Core. .NET Core doesn't support Windows Forms or any other GUI frameworks, which is why such a configuration would need to be headless.

Thanks,

Chris

User avatar
Peter
Site Admin
Posts: 1278
Joined: Fri Sep 23, 2016 8:51 am

Re: Linux server

Postby Peter » Wed Nov 22, 2017 10:01 am

I had a quick look at .NET Core and, yes, you have to specifically build for that platform. But I don't think this is going to work because JoinFS isn't purely .NET, it uses a DLL as well, and I don't think that will work on Linux, but apparently the DLL does work on Wine under Linux.

Peter

spencercw
Posts: 4
Joined: Mon Nov 20, 2017 9:12 pm

Re: Linux server

Postby spencercw » Wed Nov 22, 2017 6:59 pm

Is that DLL for something like SimConnect or is it for some core application functionality? If it's the former then it could probably just be left out; a headless server obviously wouldn't need to connect to a simulator. The latter is going to be a bit more tricky. It would probably require recompiling it on Linux into an .so (the equivalent to a Windows .dll). I don't know how you're calling into your external DLL from .NET, but it looks like at least the DllImport attribute works on .NET Core running on Linux.

User avatar
Peter
Site Admin
Posts: 1278
Joined: Fri Sep 23, 2016 8:51 am

Re: Linux server

Postby Peter » Wed Nov 22, 2017 7:13 pm

It's for core functionality, but actually that's a very good point that you make. It wouldn't be needed for a headless server. So, yes it looks as though it may be possible to do this but requires some work. I could add it to the new feature list, but be aware that there are plenty of other features in the pipeline. It may be a while before it would be done.

Peter

spencercw
Posts: 4
Joined: Mon Nov 20, 2017 9:12 pm

Re: Linux server

Postby spencercw » Wed Nov 22, 2017 7:41 pm

Hi Peter,

Ok that's good to hear. I was asked to look into the feasibility so I'm sure the membership will be happy with a 'yes, maybe at some point' rather than a 'no'. :)

Thanks for your time.

Chris

efa
Posts: 11
Joined: Tue Dec 06, 2016 10:05 am

Re: Linux server

Postby efa » Thu Nov 23, 2017 12:41 pm

and maybe we can switch our virtual association servers to Linux too, thank you

ATC Roo
Posts: 320
Joined: Sun Oct 16, 2016 9:24 am

Re: Linux server

Postby ATC Roo » Thu Nov 23, 2017 10:27 pm

Just to add to this.
I run a 64bit centos 6 headless server.
Many programs are on it including a mysql server, apache webserver and a few Linux apps I run 24/7.

I installed the KDE desktop environment and wine.

Installed Simconnect and JoinFS through wine and all runs fine.
JoinFS running under wine is one of the most resource intensive of all the services I have running, but uses very little overall.

Below is a snapshot of my data displayed with TOP as of now.
top - 22:18:03 up 6 days, 8:43, 2 users, load average: 0.22, 0.25, 0.26
Tasks: 167 total, 1 running, 165 sleeping, 0 stopped, 1 zombie
Cpu(s): 2.8%us, 1.7%sy, 0.0%ni, 89.5%id, 6.0%wa, 0.0%hi, 0.0%si, 0. Mem: 2846624k total, 2401308k used, 445316k free, 197756k buffers
Swap: 786428k total, 12976k used, 773452k free, 1140008k cached

PR NI VIRT RES SHR S %CPU %MEM TIME+ CMD
20 0 43028 18m 9080 S 5.6 0.7 322:42.97 spotter
20 0 1600m 60m 6252 S 1.0 2.2 93:39.04 JoinFS.exe
20 0 816m 609m 6412 S 0.7 21.9 57:39.35 mysqld
20 0 7848 4088 536 S 0.7 0.1 54:56.22 wineserver

As you can see wineserver is fairly light with JoinFS using 1% of the CPU.

My system is fairly old now running only a 2 core processor and 2 gig of ram.

But it copes with no issues.

User avatar
Peter
Site Admin
Posts: 1278
Joined: Fri Sep 23, 2016 8:51 am

Re: Linux server

Postby Peter » Thu Nov 23, 2017 10:55 pm

ATC Roo wrote:Installed Simconnect and JoinFS through wine and all runs fine.


As of 1.3.1, that hard link to SimConnect is gone. JoinFS will run fine on a system with no trace of SimConnect. Had to do that for X-Plane users, but it's a nice bonus for those running servers.

Peter


Return to “Discussion”