Normalmente apenas
unset DISPLAY
na linha de comando do terminal. Alguns aplicativos são mais inteligentes do que isso e, na verdade, verificam as permissões e o tipo do console em relação ao pseudoterminal.
Eu tenho este programa que pode ser executado com uma interface de usuário de texto e uma interface gráfica com o usuário.
Ele não tem nenhum comando de linha de comando para forçar um ou outro, mas acho que de alguma forma detecta automaticamente se estamos no X ou não (por exemplo, se eu o executar de um terminal virtual ele entra em seu modo de texto, e se eu executá-lo a partir de um emulador de terminal X, ele abre uma janela gráfica separada).
Eu gostaria de forçá-lo ao modo de texto e executá-lo dentro do terminal X. Como eu faria isso?
Se você quiser desabilitar o X para um único comando, você pode escrever
DISPLAY= ./my_command
Observe o espaço em branco estratégico após =
. Mais geralmente, você pode definir variáveis de ambiente para um processo prefixando seu comando com uma sequência de <variable>=<value>
separada por espaços. Como o espaço serve como separador, =
imediatamente seguido por um espaço limpa a variável anterior. Podemos observar o efeito desses prefixos usando um subshell como comando e, em seguida, imprimindo seu ambiente. Tomemos por exemplo:
$ A=a B=b C= D=d sh
$ echo $A $B $C $D
Isso imprimirá
a b d
Isso mostra que o ambiente da subcamada é realmente diferente como pretendido. Observe que a substituição de shell acontece antes que os argumentos individuais sejam passados para echo
, portanto, há apenas um espaço entre b
e d
na saída, como se a linha de comando fosse echo a b d
(com dois espaços).
Tags x11