Não é possível executar o 'startx' de dentro da sessão de tela

2

Estou executando o Slackware GNU / Linux 14.2, que não inicia um servidor X por padrão. Por um capricho, tentei executar startx dentro de uma sessão screen e recebi o aviso

/usr/libexec/Xorg.wrap: Only console users are allowed to run the X server
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Couldn't get a file descriptor referring to the console

Por que não posso executar startx dentro de uma sessão de tela? Qual recurso você pode acessar em um console "bruto" que você não pode em um shell rodando sob a tela?

    
por Gregory Nisbet 05.12.2016 / 06:40

2 respostas

1

A execução de startx só faz sentido se você estiver na frente do computador. Testar a propriedade do console é uma maneira de determinar isso. Como você descobriu, pode ser enganado operando em uma sessão screen . Nesse caso, não X para você.

    
por 05.12.2016 / 19:17
0

Para entender isso primeiro, precisamos entender a diferença entre terminal, shell e console.

  • Terminal é um programa que roda um shell, no passado era um dispositivo físico (antes os terminais eram monitores com teclados, eram teletipos) e então seu conceito era transferido para software, como o Gnome-Terminal.
  • Gnome-Terminal, aparecem janelas pretas que executam Shell para que possamos executar nossos comandos.
  • O Console é um tipo especial de terminal, também era um dispositivo físico. No Linux, por exemplo, temos consoles virtuais que podemos acessá-los pela combinação de Ctrl + Alt + F1 a F7.

consoles virtuais, porque nos primeiros tempos era um dispositivo físico . mas agora não é um dispositivo dedicado. por isso chamamos de terminais virtuais ..

A maioria dos terminais hoje em dia são estritamente emuladores de terminal. É um tipo de função no funcionamento de um sistema semelhante ao UNIX e, ao mesmo tempo, a interface básica oferecida pelos sistemas.

In fact everything, including the GUI builds on top of it.[1]

Coloquialmente podemos dizer que "terminal" se refere a pontos finais em uma rede de computadores com uma topografia em estrela.

então surge uma questão. Como GUI são construídas no console. então o que fazer se quisermos fazer algumas operações de linha de comando. e a resposta para isso é terminal ... que emula ainda mais o console .. e deixe-nos entrar no nosso comando favorito.

explanation of [1]

So Here we know that even GUI is built up on console.. and by entering the command startx you further again are requesting to open up and new XServer. So think by your own why should the GUI Terminal should let you to do that???[do you want to break your XServer??]. and if you really want to force that command.. just run startx command by administrative privileges. you will succeed but for sure you are going to break your XServer runtime.

e para responder a sua última pergunta. [Qual recurso você pode acessar em um console "bruto" que você não pode em um shell rodando sob a tela?]

Na verdade, até agora não vi nenhum caso em que não posso acessar o recurso pelo terminal em execução no Xserver. Você deve ser capaz de acessar todos os recursos pelo terminal GUI do Xserver interno .. (porque isso também foi projetado para preencher todas as necessidades que o console comum estava fornecendo !!!)

Mas executar um comando que resulte o mesmo que cortar um galho de árvore enquanto estiver sentado exatamente naquele galho ... definitivamente criará um erro.

Tudo faz sentido no campo da ciência da computação.

    
por 05.12.2016 / 14:34