Suponho que você esteja usando o GridEngine como software de armazenamento em cluster quando enviar este script para ser executado. Algo parecido com isto:
$ qsub myscript.sh
Você pode incluir variáveis de ambiente em qsub
que você deseja que as shells resultantes sejam geradas nos nós do cluster HPC da seguinte forma:
$ qsub -v DISPLAY=$(hostname):0.0 myscript.sh
Isso deve "injetar" o nome do host do sistema que você está enviando como o sistema para o qual você gostaria que qualquer GUI fosse mostrada remotamente.
Você também pode precisar fazer isso para permitir que o sistema local "receba" essa janela exibida remota. A maneira mais fácil e menos segura de fazer isso é assim:
$ xhost +
Se isso funcionar e você estiver preocupado em tornar isso "mais seguro", será mais explícito com xhost +
, mas provavelmente não será necessário. Deixe-nos saber como você se sai e podemos ajustar isso ainda mais, se necessário.
E se o acima não funcionar?
As versões mais recentes de qsub
incluem agora um comutador, -X
, que pretende passar a variável de ambiente, $DISPLAY
ao longo da forma correta da seguinte forma:
$ qsub -X myscript.sh
Você também pode tentar usar o endereço IP do host de envio em vez do nome do host. Pode ser o caso de os nós HPC não terem a configuração de DNS adequada.
$ qsub -v DISPLAY="$(hostname -i):0.0" myscript.sh