I'm working with our admin team to firm up all the requirements of the dev team before creating some system images.

One of the things we ended up needing is a lightweight GUI setup. Knowing that the overhead should not really exist on servers, we'd keep the X server off. Misconception; as per comments the X server should only run client-side and we're free to install our graphical tools without it running.

  1. I'll be able to package bash scripts that will execute on the image's first-run
  2. GUI Administration tasks are rare on our setup, but common on some clients so we'll be including a script that may be run from ssh to enable the WM and x-forwarding. No other use of GUI will be going on locally or remotely.
  3. While not common, when people do need to use the GUI, there are sometimes many logged in at once.
  4. Some developers are using X Ming on Windows, others bring their own Linux
  5. Servers are CentOS, FreeBSD and Debian; current stable versions +|- a few months.

I have not even tried the vast majority of window managers, since there are so many, but I've thought about using openbox, ice or possibly something more resource heavy if it handles multiple sessions better. Our general consensus is graphed below.

Comparison of RAM consumption in Window Managers

Which specific manager to use is outside the scope of this question; however this sums up our goal fairly well.

Given these requirements, I'm trying to find out: what is a fairly standard and portable setup or stack to instantiate windowing on the fly through ssh?

I think others have come across similar situations. At minimum, I simply don't know what to look for in WM portability. Aside from that, perhaps all there is to it is selecting a WM and writing startup scripts but if there are any techniques, packages, projects or specific WMs that aim for this use case that would be great to know as well.

  • 1
    Why have a GUI at all? It just adds bloat, and enables poor sysadmin practices. On a production unix server, there should be no requirement other than ssh. – EEAA Dec 8 '13 at 23:22
  • 1
    You don't need a window manager in this case at all! Just ssh -X and start your app. – Michael Hampton Dec 8 '13 at 23:25
  • 1
    @MichaelHampton Do I understand you correctly that the user's local manager will then handle this? In that case, how will I handle X? Start/Stop the X server when someone connects with -X ? – Garet Claborn Dec 8 '13 at 23:34
  • 1
    @MichaelHampton Thanks, I'm still a bit confused. Does the server not need X going to run graphical apps as long as there's another x server to connect to? – Garet Claborn Dec 8 '13 at 23:40
  • 1
    Now you're getting it. :) – Michael Hampton Dec 8 '13 at 23:41

You don't need a window manager in this case at all! Just ssh -X and start your app.

The X server and its own window management runs locally on the user's desktop, not on the remote server. The Windows and Mac guys will have to start their X servers manually, but on Linux desktops it's already running of course.

  • OS X actually is clever enough to start X11 when the connection attempt happens from the remote app. – MikeyB Dec 9 '13 at 1:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.