Eu tenho este programa que pode ser executado com uma interface de usuário de texto e uma interface gráfica de usuário.
Ele não possui nenhuma opção de linha de comando para forçar um ou outro, acho que, de alguma forma, detecta automaticamente se estamos no X ou não (por exemplo, se eu executá-lo em um terminal virtual, ele entra no modo de texto e, se o executar no um emulador de terminal X, abre uma janela gráfica separada).
Eu gostaria de forçá-lo ao modo de texto e fazê-lo rodar dentro do terminal X. Como eu faria isso?
DISPLAY=:0
se não estiver definido. Eu acredito que você pode corrigir isso executando-o sob um usuário diferente e usando o iptables para soltar o loopback X11, mas isso é bastante nojento.