Can I move a running application to a different X server?

10,032

If you look at the Wikipedia page on the subject there are several apps mentioned.

Xmove

excerpt

xmove is a computer program that allows the movement of X Window System applications between different displays and the persistence of X applications across X server restarts.[4] It solves a problem in the design of X, where an X client (an X application) is tied to the X server (X display) it was started on for its lifetime. Also, if the X server is shut down, the client application is forced to stop running.

xmove lets the client disconnect from its current X server, and connect to a new one, at any time. The transition is completely transparent to the client. xmove works by acting as a proxy between the client and server. It is a "pseudoserver" which stores enough server state so that clients can connect to a new server without being disrupted.

Xpra

excerpt

xpra or X Persistent Remote Applications is a tool which allows you to run X clients usually on a remote host and then direct their display to your local machine without losing any state.1

It differs from standard X forwarding in that it allows disconnection and reconnection without disrupting the forwarded application. It differs from VNC and similar remote display technologies in that xpra is rootless: i.e., applications forwarded by xpra appear on your desktop as normal windows managed by your window manager, rather than being all "trapped in a box together". Xpra also uses a custom protocol that is self-tuning and relatively latency-insensitive, and thus is usable over worse links than standard X.

Guievict

excerpt

guievict is a computer program which enables the GUI of any application for XFree86 implementation of X Window to be transparently migrated to or replicated on another display. Unlike some program providing similar functionalities, it requires neither prearranging steps such as re-linking the application program binary nor re-directing the application process's window system communication through a proxy like xmove does.

Guievict is based on a small X server extension that enables an application to retrieve its window state from the X server and a library of GUI migration functionality that is injected in the application process at run time. Code injection or runtime code-patching can be done via the DynInst API. However, guievict contains its own implementation to avoid requiring users to install DynInst.

Of the 3 of these, Guievict sounds like what you're looking for, mainly that it can checkpoint the state of X application AppX and migrate it to another X server where it can be restored.

Share:
10,032

Related videos on Youtube

KG6ZVP
Author by

KG6ZVP

I host my own git here: https://gitlab.mccollum.enterprises/smccollum/

Updated on September 18, 2022

Comments

  • KG6ZVP
    KG6ZVP over 1 year

    Is there any way to open a graphical program (for instance, gedit) while using X11 forwarding over SSH and transfer the X server connection back to the X server on the SSH host?

  • mikeserv
    mikeserv over 9 years
    slamdunk man. i wonder how that last one is pronounced. i'll upvote it again if you can link to an audible pronunciation guide...
  • slm
    slm over 9 years
    @mikeserv - it stands for GUI Eviction - pages.cs.wisc.edu/~zandy/guievict. gui-vict or goo-e-vict. README is here: pages.cs.wisc.edu/~zandy/guievict/README.
  • mikeserv
    mikeserv over 9 years
    but I cant really upvote it again, you know.
  • slm
    slm over 9 years
    @mikeserv - I know, I didn't know how to say it either, so I looked it up.
  • mikeserv
    mikeserv over 9 years
    of course you know - better than I! this is a really good answer though. you did a good job - thanks, @slm.