Deactivate plot display to avoid need for X server



I use the following type of code to create a gif animation:

using Plots
anim = Animation();
for it = 1:nt
gif(anim, "test.gif", fps = 15);

This works fine on my local notebook or when I connect to a compute node with X server (ssh -X). However, I need to be able to do that without any X server (for distributed jobs). When I run it without an X server available, I get the following error:

gksqt: cannot connect to X server localhost:12.0
connect: Connection refused
GKS: can't connect to GKS socket application
Did you start 'gksqt'?

GKS: Open failed in routine OPEN_WS
GKS: GKS not in proper state. GKS must be either in the state WSOP or WSAC in routine ACTIVATE_WS

Could you tell me how to avoid the need for an X server, i.e. how I can deactivate any display / how I can deactivate GKS?



You can set the output type before using the gr backend using ENV["GKSwstype"]=100 or ENV[“GKSwstype”]=“nul”`, which activates the NULL device.


Great setting ENV["GKSwstype"]="nul" makes it work! Thank you very much!


I had a hard time to solve this issue until I found this post. Thank you very much.

At the same time, it would be nice if there was a less hackier way to do it, something like


Don’t you think?


Yes @leandromartinez98, I totally agree: it would be good if one could turn off the display with a function call.