猿问

如何使用 bash -c 启动程序,重定向/禁用该应用程序的 GUI

目前我正在启动一个java应用程序


bash -c java -jar app.jar -config config.json

该应用程序打开一个窗口,显示一些输出并关闭。输出也可在 stdout 上获得,因此我不需要(想要)显示 GUI。


如何防止 bash 转发 X 输出?


跟进:


我在 go 应用程序中运行它,所以根据 el.pescado 的回答,我将其实现为:


func runcmd(cmd string, workdir string) ([]byte, error) {

  ex := exec.Command("bash", "-c", cmd)

  ex.Env = []string{"DISPLAY= "}

  ex.Dir = workdir

  return ex.Output()

}


撒科打诨
浏览 107回答 1
1回答

HUH函数

您有几种选择:首先,您应该检查该应用程序是否可以在没有 GUI 的情况下运行(通常称为“无头”模式)您可以取消设置 DISPLAY变量,这样您的应用程序就不会找到您的 X11 服务器 - 但请记住,如果没有 X 服务器,应用程序可能无法运行例如。DISPLAY= bash -c java -jar app.jar -config config.json # note space after '='# orenv -u DISPLAY bash -c java -jar app.jar -config config.json您可以使用内存中的虚拟 X 服务器(例如xfvb)并指向您的应用程序以在那里显示其窗口。例如。Xvfb :1 -screen 0 1600x1200x32DISPLAY=:1 bash -c java -jar app.jar -config config.json
随时随地看视频慕课网APP

相关分类

Go
我要回答