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

如何用bash-c启动程序,重定向/禁用该应用程序的GUI,bash,go,Bash,Go,目前,我正在启动一个java应用程序 bash -c java -jar app.jar -config config.json 应用程序打开一个窗口,显示一些输出,然后关闭。输出也可以在标准输出上使用,所以我不需要(希望)GUI显示 如何防止bash转发X输出 跟进: 我在go应用程序中运行此功能,因此根据el.pescado的回答,我实现了以下功能: func runcmd(cmd字符串,workdir字符串)([]字节,错误){ 例如:=exec.Command(“bash”、“-c”、

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

bash -c java -jar app.jar -config config.json
应用程序打开一个窗口,显示一些输出,然后关闭。输出也可以在标准输出上使用,所以我不需要(希望)GUI显示

如何防止bash转发X输出

跟进:

我在go应用程序中运行此功能,因此根据el.pescado的回答,我实现了以下功能:

func runcmd(cmd字符串,workdir字符串)([]字节,错误){
例如:=exec.Command(“bash”、“-c”、cmd)
例如Env=[]字符串{“DISPLAY=“}”
exdir=workdir
返回例如输出()
}

您有几个选项:

  • 首先,您应该检查应用程序是否可以在没有GUI的情况下运行(通常称为“headless”模式)
  • 您可以
    显示
    变量,这样您的应用程序就不会找到您的X11服务器-但请记住,如果没有X服务器,应用程序可能无法工作
  • 例如

  • 您可以使用内存中的虚拟X服务器(如),并将应用程序指向此处显示其窗口
  • 例如


    您有几个选择:

  • 首先,您应该检查应用程序是否可以在没有GUI的情况下运行(通常称为“headless”模式)
  • 您可以
    显示
    变量,这样您的应用程序就不会找到您的X11服务器-但请记住,如果没有X服务器,应用程序可能无法工作
  • 例如

  • 您可以使用内存中的虚拟X服务器(如),并将应用程序指向此处显示其窗口
  • 例如

    @mgagnon 2
    DISPLAY=bash-cjava-jar app.jar-config.json
    @mgagnon 2
    DISPLAY=bash-cjava-jar app.jar-config.json
    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
    
    Xvfb :1 -screen 0 1600x1200x32
    DISPLAY=:1 bash -c java -jar app.jar -config config.json