Ao ler sobre o Ubuntu, encontrei a seguinte declaração .....
Se o gerenciador de exibição não for iniciado por padrão no nível de execução padrão, você poderá iniciar o X de uma maneira diferente, após efetuar logon em um console em modo de texto, executando startx na linha de comando.
O que significa ser um nível de execução padrão? E quando tentei isso no meu terminal, obtive o seguinte:
anupam@JAZZ:~$ startx
X: user not authorized to run the X server, aborting.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Respostas:
Era uma vez (1), quando a memória dos computadores era medida em kilobytes e os discos em megabytes, executar a interface gráfica o tempo todo era considerado prejudicial.
A maioria dos computadores Unix era usada para cálculos científicos e simulações em ambientes multiusuários, e a interface gráfica em execução neles reduzia a memória e a potência da CPU disponíveis.
Então, quando você precisava de uma interface gráfica, você a iniciou com
startx
(2).startx
basicamente executa um Xserver (o "driver" gráfico) e um comando que é executado nele, que normalmente é um gerenciador de janelas . Por padrão, os comandos executados estão no~/.xinitrc
arquivo em seu diretório inicial ou em algum arquivo de sistema genérico.Os sistemas modernos são pensados de baixo para cima para ter um sistema gráfico funcionando o tempo todo, portanto, provavelmente ninguém verifica o funcionamento
startx
há séculos - o que explica muitos comportamentos estranhos que você pode ter.Se você deseja experimentar e sentir os bons velhos tempos, o melhor é fazer o seguinte:
A) instalar
Xnest
efvwm
. O Xnest é um servidor gráfico dentro de um servidor, um tipo de servidor que será aberto como uma janela no seu sistema normal. O Fvwm é um gerenciador de janelas muito simples, que era muito popular na época. Você também precisará de fontes pixmap antigas.B) escreva esse arquivo em algum lugar, por exemplo, no seu diretório home e chame-o de
~/test
:C) Executar (aviso:
startx
normalmente é executado primeiro com o comando do cliente, depois com um traço duplo e, em seguida, com o servidor. Como eu disse, a maioria dos novos sistemas não possui padrões sensíveisstartx
apenas).... e você tem uma tela da estação de trabalho dos anos 80:
(Você pode ter o menu clicando na área de trabalho "Xnest").
... e se você se sentir realmente aventureiro, poderá iniciar uma sessão nativa em outro console virtual (leia as outras respostas) acessando uma delas com Ctrl-Alt-F1, fazendo login e
que normalmente abrirá em Ctrl-Alt-F8.
Aviso : os ambientes de desktop modernos não foram projetados para serem executados simultaneamente, para o mesmo usuário, em dois consoles diferentes. Portanto, não use
gnome-shell
ouunity
coisas modernas ao fazer esses experimentos, ou você pode atrapalhar sua configuração.Notas de rodapé:
(1) Falando sobre 1980-90 aqui.
(2) Por exemplo, eu tinha um laptop com 256k de RAM. Foi dolorosamente lento na interface gráfica (P&B!), Mas rápido no console. Então eu fiz a maior parte do meu trabalho (edição
C
,LaTeX
e arquivos semelhantes) no modo de console, e mudou para o ambiente gráfico somente quando realmente necessário.fonte
startx
inicia a xsession ou a interface gráfica na qual você vê uma tela de login e qualquer coisa além de apenas um console ascii (sessão de texto).Você está recebendo este erro porque o xsession já foi iniciado e está tentando executar o comando de dentro do xsession no tty7.
tty7 é a interface do usuário que existe em ctrl+ alt+ f7(xsession padrão).
tty1 é a interface do usuário que existe em ctrl+ alt+ f1.
tty2 é a interface do usuário que existe em ctrl+ alt+ f2. . . e assim por diante.
tty1 - tty6 são sessões de texto e você pode fazer login com seu nome de usuário e senha em uma dessas telas. Após o login, você pode executar o comando
startx
e o xsession será iniciado em tty7 se ainda não estiver em execução e tty8 se tty7 já estiver executando uma xsession.Níveis de execução:
run-level 0 Halt - Desliga o sistema.
nível de execução 1 Modo de usuário único - Modo para tarefas administrativas.
multi-usuário gráfico com rede - nível de execução 2 - inicia o sistema normalmente.
nível de execução 3-5 Não utilizado, mas configurado da mesma forma que no nível de execução 2
Reiniciar - reinicia o sistema.
O termo nível de execução refere-se a um modo de operação em um dos sistemas operacionais de computador que implementa a inicialização no estilo V do Sistema Unix. Convencionalmente, existem sete níveis de execução, numerados de zero a seis; embora até dez, de zero a nove [citação necessário], possam ser usados. Às vezes, S é usado como sinônimo de um dos níveis. Somente um "nível de execução" é executado na inicialização - os níveis de execução não são executados sequencialmente, ou seja, o nível de execução 2 OU 3 OU 4 é executado, não 2 e 3 e 4 - pt.wikipedia.org/wiki/Runlevel
fonte
unity
ougnome-shell --replace
ou mesmognome-panel
oumetacity --replace
.Significa simplesmente em um tty diferente .
Citando a pergunta vinculada:
Por padrão, o Ubuntu possui 7 tty's.
1-6
são apenas linha de comando,7
executa sua sessão X (sua área de trabalho gráfica normal).Para acessá-los, use este atalho de teclado: Ctrl+ Alt+F1
(mudando
F1
para F1-F6 para acessar o terminal necessário)Para voltar à sua sessão X (a área de trabalho normal), use: Ctrl+ Alt+F7
after logging on to a text-mode console
significa simplesmente fazer login em um tty diferente e digitar o comando:fonte
Como observa Rmano, startx é uma abordagem muito antiga. Na época em que isso foi usado, o binário X11 foi instalado como raiz setuid.
Eu apenas tentei isso em uma VM e, de fato,
startx
falha como você descreve, por padrão.chmod u+s /usr/lib/xorg/Xorg
corrige isso embora.Eu não recomendo fazer
Xorg
ser root setuid. O mundo se afastou disso por uma boa razão. Mas se você estiver brincando em uma VM descartável, é assim questartx
funciona.fonte
Exemplo mínimo QEMU + Buildroot
Minha maneira favorita de aprender o que algo faz é fazer um exemplo mínimo que o execute.
No Ubuntu, isso é difícil desde um segundo
startx
pode entrar em conflito com a área de trabalho atual./ubuntu//a/519164/52975 propõe
Xnest
, mas com o QEMU + Buildroot podemos ir ainda mais mínimos e criar uma micro-distribuição com apenas o X11 instalado.Dessa forma, deve ser mais fácil entender o que está acontecendo.
Descrevi a criação da distribuição em: /unix//a/306116/32558
Depois de obter a imagem em execução no QEMU, você inicia em um shell TTY.
Então quando você faz:
inicia uma GUI X11:
Agora dê uma olhada na fonte de
startx
dentro dessa distribuição, que é apenas um script de shell.É um invólucro simples
/usr/bin/xinit
e passa/etc/X11/xinit/xinitrc
paraxinit
.Se você abrir
/etc/X11/xinit/xinitrc
, ele conterá as seguintes linhas:então vemos que ele inicia:
twm
: um gerenciador de janelas muito simples e antigoxclock
exterm
que vemos na telaPois
/usr/bin/xinit
, podemos fazer:que diz que:
fonte