Iniciando programas com GUI sem gerenciador de exibição
9
Ouvi dizer que existe uma maneira de iniciar programas com interface gráfica sem gerenciador de exibição - diretamente do terminal. Isso é real e, se sim, como posso fazer isso?
Você pode executá-los sem o gerenciador de exibição, mas precisa de uma sessão X em execução. Que distribuição você está usando? Você tem um servidor X instalado? Você pode correr xinitou startx?
Terdon #
@terdon sim, atualmente estou executando o lmint, mas a questão é mais para o conhecimento geral (não para distro).
Você pode executá-los sem o gerenciador de exibição, mas precisa de uma sessão X em execução. Os detalhes dependerão da sua distribuição, mas você deverá conseguir uma sessão X mínima com um único terminal executando
xinit
Eu não faço isso há anos, mas, da última vez que fiz, isso daria algo assim:
Uma vez lá, você pode executar um programa GUI normalmente, de preferência iniciando-o em segundo plano (com &) para não perder o acesso ao seu único terminal.
Vale a pena mencionar que "executá-los normalmente" provavelmente envolverá o processo em segundo plano; portanto, você provavelmente desejaria usar xterm ¶ obter um terminal adicional, não apenas xterm. Etc.
a CVn
6
Aqui está o básico para executar um aplicativo GUI sem cabeça, com uma maneira ( vnc) de conectar-se a ele. Trabalha com RHEL7e Centos 7com a família. E retirei minha própria imagem do Docker que eu uso para o Crashplan localizado em https://github.com/xeor/dockerfiles/tree/master/crashplan/ (veja Dockerfilea configuração e init/setupa inicialização).
# Needed environment variables
export DISPLAY=:99.0
export SCREEN_WIDTH=1200
export SCREEN_HEIGHT=960
export SCREEN_DEPTH=24
export GEOMETRY="${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH}"
# Needed packages
yum install -y xorg-x11-server-Xvfb x11vnc gtk2 xorg-x11-fonts-*
# Set a password (if variable vncpass is sat, else its `secret`)
mkdir -p ~/.vnc && x11vnc -storepasswd ${vncpass:-secret} ~/.vnc/passwd
# Start up the fake display and run the application you want (the `java ...` part)
xvfb-run --server-args="$DISPLAY -screen 0 $GEOMETRY -ac +extension RANDR" java .... > log/ui_output.log 2> log/ui_error.log &
# Wait for the app to start, or else, the vnc server will die before starting
sleep 5
# vnc itself
x11vnc -forever -usepw -shared -rfbport 5900 -display $DISPLAY
Agora você deve conseguir se conectar ao servidor: 5900 e ver o aplicativo.
Sim. Faça as mesmas coisas que um gerente de exibição faz. Além da tela gráfica de login (que você não precisa neste caso), o gerenciador de exibição faz apenas duas coisas:
Primeiro, ele inicia um "servidor de exibição" X11, como o Xorg,
então inicia "clients" que dizem ao Xorg o que e onde desenhar.
Você pode usar ferramentas como startxiniciar o X11 da mesma maneira a partir de um login no console; ele iniciará o Xorg seguido pelos clientes listados no seu ~/.xinitrcarquivo.
Por exemplo, o arquivo .xinitrc pode ter startkdeou gnome-session, ou pode listar os componentes individuais (o gerenciador de janelas, um painel / barra de tarefas, uma área de trabalho ...)
(Observe que existem algumas diferenças entre xinite startx- geralmente você deve usá-lo, pois algumas distros têm algumas partes importantes de configuração que o xinit simples ignorará, a saber, o xserverrcscript.)
Com Wayland, a área de trabalho e os painéis são uma parte integrada do "compositor", de modo que toda a interface inicia em uma única etapa sem ferramentas adicionais. Por exemplo, você pode executar westonou iniciar o GNOME usando gnome-session --session=gnome-wayland.
Você pode iniciar aplicativos X usando o encaminhamento ssh X (ssh -X; também pode ser necessário ativar a configuração do servidor), desde que você tenha uma exibição X local .
O aplicativo será iniciado e exibido localmente, enquanto estiver sendo executado em um sistema sem cabeça. Você precisará ter o X instalado no sistema sem cabeça para ter as bibliotecas corretas, e isso pode não funcionar com aplicativos GNOME mais modernos.
Você também pode usar $DISPLAYpara iniciar aplicativos em um monitor X conectado, mesmo que seu shell seja remoto (ssh ou console). Se você é root e a pessoa conectada na tela X não é, você pode substituir a xauthsegurança e abrir uma janela na tela deles de qualquer maneira. Isso também funciona se você tiver dois servidores de exibição X diferentes em monitores diferentes.
Outro pôster menciona o VNC; Eu também usei o NX para esse fim e prefiro.
xinit
oustartx
?Respostas:
Você pode executá-los sem o gerenciador de exibição, mas precisa de uma sessão X em execução. Os detalhes dependerão da sua distribuição, mas você deverá conseguir uma sessão X mínima com um único terminal executando
Eu não faço isso há anos, mas, da última vez que fiz, isso daria algo assim:
Uma vez lá, você pode executar um programa GUI normalmente, de preferência iniciando-o em segundo plano (com
&
) para não perder o acesso ao seu único terminal.fonte
xterm &
para obter um terminal adicional, não apenasxterm
. Etc.Aqui está o básico para executar um aplicativo GUI sem cabeça, com uma maneira (
vnc
) de conectar-se a ele. Trabalha comRHEL7
eCentos 7
com a família. E retirei minha própria imagem do Docker que eu uso para o Crashplan localizado em https://github.com/xeor/dockerfiles/tree/master/crashplan/ (vejaDockerfile
a configuração einit/setup
a inicialização).Agora você deve conseguir se conectar ao servidor: 5900 e ver o aplicativo.
fonte
Sim. Faça as mesmas coisas que um gerente de exibição faz. Além da tela gráfica de login (que você não precisa neste caso), o gerenciador de exibição faz apenas duas coisas:
Você pode usar ferramentas como
startx
iniciar o X11 da mesma maneira a partir de um login no console; ele iniciará o Xorg seguido pelos clientes listados no seu~/.xinitrc
arquivo.Por exemplo, o arquivo .xinitrc pode ter
startkde
ougnome-session
, ou pode listar os componentes individuais (o gerenciador de janelas, um painel / barra de tarefas, uma área de trabalho ...)(Observe que existem algumas diferenças entre
xinit
estartx
- geralmente você deve usá-lo, pois algumas distros têm algumas partes importantes de configuração que o xinit simples ignorará, a saber, oxserverrc
script.)Com Wayland, a área de trabalho e os painéis são uma parte integrada do "compositor", de modo que toda a interface inicia em uma única etapa sem ferramentas adicionais. Por exemplo, você pode executar
weston
ou iniciar o GNOME usandognome-session --session=gnome-wayland
.fonte
Você pode iniciar aplicativos X usando o encaminhamento ssh X (ssh -X; também pode ser necessário ativar a configuração do servidor), desde que você tenha uma exibição X local .
O aplicativo será iniciado e exibido localmente, enquanto estiver sendo executado em um sistema sem cabeça. Você precisará ter o X instalado no sistema sem cabeça para ter as bibliotecas corretas, e isso pode não funcionar com aplicativos GNOME mais modernos.
Você também pode usar
$DISPLAY
para iniciar aplicativos em um monitor X conectado, mesmo que seu shell seja remoto (ssh ou console). Se você é root e a pessoa conectada na tela X não é, você pode substituir axauth
segurança e abrir uma janela na tela deles de qualquer maneira. Isso também funciona se você tiver dois servidores de exibição X diferentes em monitores diferentes.Outro pôster menciona o VNC; Eu também usei o NX para esse fim e prefiro.
fonte