Deploying to Linux

Deployment to Linux is officially supported for .NET Servers, using either .NET Core or the open source Mono runtime.

Mono is a free and open source implementation of Microsoft's Common Language Runtime (CLR) stack that can be downloaded and installed on a variety of platforms, including Linux, Mac OS X and Windows.

You can learn more about Mono and download it at go-mono.com.

Installation

Remoting SDK Servers can be "xcopy-deployed", meaning that they don't need an install procedure, but instead you can just copy all the relevant files necessary to a folder of your choice (be it manually or in an automated fashion), and then run the server application from there.

You need to deploy the following files in order to run your .NET-based Server:

  • your servers executable, eg MyServer.exe
  • any configuration file (e.g. MyServer.exe.config) your server may need
  • any TSL certificate file (e.g. MyServer.p12) your server needs (See TLS)
  • the Remoting SDK core libraries:
    • RemObjects.SDK.dll
    • RemObjects.SDK.Server.dll
  • any additional libraries your server application requires, be it third party, your own, or those provided by the compiler. For example, servers created with RemObjects Silver will require Swift.dll and Echoes.dll.

We recommend setting the "Copy Local" flag of any libraries that are not part of the core .NET runtime to "True" for your project in Visual Studio or Fire; this way, all required .dlls will be copied next to your executable, as part of the build process.

Running

There are two options for launching your Remoting SDK Server in a UNIX system: directly from the command line, or as true background UNIX Dæmon.

Running in Command Line Mode

To launch your server in command line mode, simply use Mono to invoke it with the --commandline parameter from a terminal window or a shell:

mono MyServer.exe --commandline

Your server will start immediately, and print informational details (such as a start-up message, and any logging messages you might emit yourself) to the shell. The shell will be blocked running the server, until you quit it by pressing Enter or ^C", or until the server quits on its own.

Running in command line mode is great when testing or debugging, and to get the server up and running quickly. But the downside is that as soon as you close your terminal window or terminate your shell connection, the server will be stopped, as well.

Running as UNIX Dæmon

Mono provides the mono-service tool to run .NET applications as background dæmons, if they implement the Windows NT Service pattern – which Remoting SDK Servers do by default. Simply run mono-service from terminal or a script to launch your server:

mono-service MyServer.exe

The mono-service tool will return control to the terminal or shell right away, and your server will be executing in the background and can be controlled using regular UNIX dæmon mechanisms such as the kill UNIX command. It will keep running after you close the terminal window or shell connection.

Please refer to the main page and documentation for mono-service for more details.

Delphi Servers

If you are using Free Pascal (FCP), you can also build and deploy Delphi Servers to Linux, but that scenario is not officially supported by RemObjects. Please refer to the available resources from the FPC community for more information, at freepascal.org/