Currently I'm starting a java application with
bash -c java -jar app.jar -config config.json
The app opens a window, displaying some output and closes. The output is also available on stdout, so I don't need (want) the GUI to display.
How can I prevent bash to forward the X output?
Follow up:
I'm running this in a go application, so based on el.pescado's answer, I have implemented this as:
func runcmd(cmd string, workdir string) ([]byte, error) {
ex := exec.Command("bash", "-c", cmd)
ex.Env = []string{"DISPLAY= "}
ex.Dir = workdir
return ex.Output()
}
You have several options:
DISPLAY
variable, so that your app won't find your X11 server - but keep in mind that application might not work without X servereg.
DISPLAY= bash -c java -jar app.jar -config config.json # note space after '='
# or
env -u DISPLAY bash -c java -jar app.jar -config config.json
eg.
Xvfb :1 -screen 0 1600x1200x32
DISPLAY=:1 bash -c java -jar app.jar -config config.json