User Tools

Site Tools


wiki:components:x2goserver

This is an old revision of the document!


X2go's Server Core

:!: This wiki page needs much more work!!! Any help is appreciated!!!

X2go's Server: base package and extensions

The x2goserver package (Debian/Ubuntu) provides the server-side core of X2go. If you want to run the legacy X2go client (x2goclient) on the client-side systems then the installation of this package is sufficient.

In May 2011 we have added an x2goserver-extensions package (Debian/Ubuntu) that we consider as a namespace for X2go server contributions. For example, the Python X2go implementation requires some scripts available in this package. If you work on coding some other X2go client implementation you are invited to contribute your server extensions within this namespace.

X2go's Server: What is it? What does it do?

The base x2goserver and also the X2go server extensions are basically a collection of Bash and Perl scripts that take care over X2go server session management and communication between client and server.

X2go server currently uses NXv3 based libraries and tools for the backend implementation of X2go (graphical compression & caching for low bandwidth connections).

The individual x2goserver scripts do have (rudimentary) man pages. Some of the X2go server scripts are used internally (by other X2go server scripts), others are designed to be available to X2go client implementations (e.g. x2goruncommand, x2gosuspend-session, x2goterminate-session, etc.).

The latest status of the X2go server's manual pages can be viewed via the gitweb tool of X2go's Git: http://code.x2go.org/doc/x2goserver/man

The latest status of the X2go server extension's manual pages can found here: http://code.x2go.org/doc/x2goserver-extensions/man

X2go's Server: How it actually works

Starting a New Session

When starting a new session the script called x2gostartagent gets executed on the server. x2gostartagent creates a new session in three phases:

  1. Find unique $DISPLAY number and unique session ID. This will insert a new session in the database.
  2. Find free ports for sound, graphic, file sharing. After that the the database entry will get updated with these discovered values.
  3. Start x2goagent (NX-like XServer): after that the database entry gets updated with the PID of the x2goagent process.

CAVEAT for client implementations: if you query the session entry from the database with x2golistsessions some time between phases 1 and 3 some of the returned values (ports, agent PID) will not be set.

Resuming a Session

TODO…

Suspending/Terminated a Session

TODO…

X2go's Server: Improving documentation...

REQUEST TO X2go USERS: For the improvement of the X2go server manual pages we request everyone's help here.

Task:

  • recognize scripts that have to be available to clients (i.e. have to be in $PATH) → $PREFIX/bin or $PREFIX/sbin
  • move other scripts to $PREFIX/lib/x2go
  • improve manual page contents (what is the script for, what does it do, what values does it return, etc.)
wiki/components/x2goserver.1318876750.txt.gz · Last modified: 2013/03/08 13:31 (external edit)