为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
撒科打诨 2023-05-08 18:10:43
目前我正在启动一个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个赞

您有几种选择:

  1. 首先,您应该检查该应用程序是否可以在没有 GUI 的情况下运行(通常称为“无头”模式)

  2. 您可以取消设置 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


查看完整回答
反对 回复 2023-05-08
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信