stop / start gui no debian

3

Eu gostaria de iniciar o Debian sem a GUI e depois digitar comandos para ativar os programas desejados ( que estão localizados na minha máquina local ), por exemplo

$ chromium-browser &

Eu já faço uma coisa parecida quando ssh em outras máquinas na LAN - é útil se eu precisar visualizar dados csv, por exemplo, em soffice . Atualmente tenho gnome desktop e Debian 7 instalado.

Eu tenho encontrei algumas instruções para desabilitar a GUI na inicialização com o Debian , no entanto, estou relutante em testá-las por medo de ser impedido de usar o navegador da web assim que eu fizer isso (vou precisar dele para procurar ajudar a usar o navegador se eu ficar preso).

Eu queria saber se eu poderia testar temporariamente o método de iniciar a GUI em um dos outros terminais (por exemplo, ctrl+alt+f1 ) para ver se há algum problema? Isso vai funcionar? Será equivalente a iniciar a GUI ao inicializar sem uma GUI?

Se isso for viável, alguém pode fornecer instruções completas sobre:

  • ativando a GUI no terminal f1 para que eu possa executar programas gui (sem mostrar a interface completa da área de trabalho)
  • desativando a interface gráfica da área de trabalho na inicialização

Obviamente, precisarei executar o X11 para carregar programas GUI - tudo bem, mas estou procurando inicializar em modo texto e depois executar programas GUI conforme necessário.

fazendo alguns testes em um ubuntu 12.04 virtualbox vm (esperançosamente não muito diferente do debian 7?) ...

$ ps aux | grep gdm
# *blank*
$ ps aux | grep kdm
# *blank*
$ ps aux | grep lightdm
root      1225  0.0  0.0 270664  3500 ?        Ssl  12:43   0:00 lightdm
root      1234  1.9  2.2 236564 112276 tty7    Ss+  12:43   0:01 /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none
root      1382  0.0  0.0 156772  3572 ?        Sl   12:43   0:00 lightdm --session-child 12 19
$ sudo update-rc.d lightdm disable
update-rc.d: warning: /etc/init.d/lightdm missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Disabling system startup links for /etc/init.d/lightdm ...
 Removing any system startup links for /etc/init.d/lightdm ...
   /etc/rc0.d/K20lightdm
   /etc/rc1.d/K20lightdm
   /etc/rc2.d/K80lightdm
   /etc/rc3.d/K80lightdm
   /etc/rc4.d/K80lightdm
   /etc/rc5.d/K80lightdm
   /etc/rc6.d/K20lightdm
 Adding system startup for /etc/init.d/lightdm ...
   /etc/rc0.d/K20lightdm -> ../init.d/lightdm
   /etc/rc1.d/K20lightdm -> ../init.d/lightdm
   /etc/rc6.d/K20lightdm -> ../init.d/lightdm
   /etc/rc2.d/K80lightdm -> ../init.d/lightdm
   /etc/rc3.d/K80lightdm -> ../init.d/lightdm
   /etc/rc4.d/K80lightdm -> ../init.d/lightdm
   /etc/rc5.d/K80lightdm -> ../init.d/lightdm
$ sudo shutdown -r 0

e o gui está de volta e funcionando novamente após a reinicialização! então isso claramente não teve o efeito desird. no entanto:

$ sudo /etc/init.d/lightdm stop

mata o gui. movendo para tty2 (pressionando ctrl+alt+f2 ) e tentando abrir o firefox:

$ firefox &
Error: no display specified

tentando especificar uma exibição:

$ export DISPLAY='0.0'
$ firefox &
Error: cannot open display: 0.0

e agora estou preso. Ainda posso recuperar o GUI em ctrl+alt+f7 digitando o seguinte em tty2:

$ sudo /etc/init.d/lightdm start

mas isso não é o que eu quero. Eu só quero ser capaz de executar o Firefox sem mostrar todas as outras coisas da área de trabalho, como o relógio e as barras de menu, etc.

experimentando algumas das coisas em goldilocks 'answer

$ sudo /etc/init.d/lightdm stop
$ echo "#!/bin/bash" > ~/.xinitrc
$ echo "exec firefox" >> ~/.xinitrc
$ xinit

isso faz exatamente o que eu quero :)

    
por mulllhausen 25.09.2013 / 15:45

2 respostas

9

As instruções para desabilitar o xdm / kdm / gdm / whichever-dm-you-have estão corretas. Se você não fizer isso, inicializará com um login gráfico (que é o dm = gerenciador de exibição) e sempre que você sair do X (que deve ser tão fácil quanto ctrl-alt-backspace - experimente, mas feche seus aplicativos primeiro) , o DM irá reaparecer outro login gráfico, tornando impossível escapar da GUI.

Outra possibilidade com o debian é verificar em /etc/rc[N].d para um nível de execução que não inicia o dm, e fazer com que o initdefault em /etc/inittab . Eu não tenho um sistema debian não modificado em mãos, então eu não posso dizer qual deles será - possivelmente 2. Não escolha 0, 1, ou 6.

Quando o dm estiver desativado, você inicializará em um console de login. A partir daí, você pode iniciar o X com o comando startx . Isso inclui um DE padrão e se você estiver usando o gnome provavelmente será ele. Você também pode criar um ~/.xinitrc , que é um script de shell que será executado no lugar do padrão. Geralmente eles podem ser mínimos, por exemplo:

#!/bin/sh

exec gnome-session

Deveria começar o gnome (eu acredito - eu também não tenho um sistema de gnomo à mão).

Observe que você não pode executar um aplicativo GUI sem X; não está claro no seu post que você entende isso. Programas GUI são, na verdade, clientes que precisam do servidor Xorg para funcionar. Você pode iniciar um X puro sem DE ou WM e um aplicativo específico, substituindo a linha exec gnome-session pelo nome do aplicativo, mas cuidado, você não terá como iniciar outra coisa e, quando fechar o aplicativo, você Estarei olhando para uma tela em branco com um cursor flutuando nela.

Não há nada perigoso em tudo isso e é fácil reativar o DM se você quiser.

    
por 25.09.2013 / 16:26
5

para desativar o gui na inicialização:

update-rc.d gdm3 disable # if you using gdm3
update-rc.d kdm disable  #if you using kdm

No entanto, se você tiver os dois, por favor execute os dois comandos.

Para desativar o modo gráfico na inicialização em ubuntu OS :

echo "manual" | tee -a /etc/init/lightdm.override

Porque ubuntu usa Upsatrt e invocou lightdm como upstart service .

No ambiente gráfico do mundo UNIX, você tem 3 camadas:

  1. X #support teclado, mouse e alguns dos drivers
  2. Gerenciador de Janelas # decorador de identificadores, títulos de vitórias e assim por diante
  3. Gerenciador de exibição # cria a comunicação entre as janelas.

Quando você executa o gdm3 ou o kdm, você faz 3layers.

Se você quer rodar um programa gráfico na rede, você só precisa da camada 1: X. você deve definir:

export DISPLAY=YOUR_DEST_IP:0.0

Em seguida, execute seu programa.

    
por 25.09.2013 / 15:58