目前我正在启动一个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()}
1 回答
HUH函数
TA贡献1836条经验 获得超4个赞
您有几种选择:
首先,您应该检查该应用程序是否可以在没有 GUI 的情况下运行(通常称为“无头”模式)
您可以取消设置
DISPLAY
变量,这样您的应用程序就不会找到您的 X11 服务器 - 但请记住,如果没有 X 服务器,应用程序可能无法运行
例如。
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
您可以使用内存中的虚拟 X 服务器(例如xfvb)并指向您的应用程序以在那里显示其窗口。
例如。
Xvfb :1 -screen 0 1600x1200x32
DISPLAY=:1 bash -c java -jar app.jar -config config.json
- 1 回答
- 0 关注
- 106 浏览
添加回答
举报
0/150
提交
取消