Mientras leía sobre Ubuntu encontré la siguiente declaración .....
Si el administrador de visualización no se inicia de manera predeterminada en el nivel de ejecución predeterminado, puede iniciar X de una manera diferente, después de iniciar sesión en una consola en modo de texto, ejecutando startx desde la línea de comandos.
¿Qué significa ser un nivel de ejecución predeterminado? Y cuando probé esto en mi terminal, obtuve esto:
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
Respuestas:
Érase una vez (1), cuando la memoria de las computadoras se medía en kilobytes y los discos en megabytes, ejecutar la interfaz gráfica todo el tiempo se consideraba perjudicial.
La mayoría de las computadoras Unix se utilizaron para cálculos científicos y simulación en entornos de múltiples usuarios, y la interfaz gráfica que se ejecuta en ellos reduciría la memoria y la potencia de CPU disponibles para ellos.
Entonces, cuando necesitabas una interfaz gráfica, la comenzaste con
startx
(2).startx
básicamente ejecuta un Xserver (el "controlador" gráfico) y un comando que se ejecuta en él, que generalmente es un administrador de ventanas . De manera predeterminada, los comandos que se ejecutan están en el~/.xinitrc
archivo de su directorio de inicio, o en algún otro archivo genérico del sistema.Se piensa que los sistemas modernos tienen un sistema gráfico que funciona todo el tiempo, por lo que probablemente nadie haya verificado el funcionamiento
startx
durante años, lo que explica una gran cantidad de comportamiento extraño que puede tener.Si quieres experimentar y sentir los viejos tiempos, lo mejor es hacer lo siguiente:
A) instalar
Xnest
yfvwm
. Xnest es un servidor gráfico dentro de un servidor, un tipo de servidor que se abrirá como una ventana en su sistema normal. Fvwm es un administrador de ventanas muy simple que era muy popular en aquel entonces. También necesitarás fuentes antiguas de pixmap.B) escriba este archivo en algún lugar, por ejemplo en su directorio de inicio, y llámelo
~/test
:C) Ejecutar (aviso:
startx
normalmente se ejecuta con primero el comando del cliente, luego un doble guión y luego un comando del servidor. Como dije, la mayoría de los sistemas nuevos no tienen valores predeterminados sensiblesstartx
solo).... y tienes una pantalla de estación de trabajo de los 80:
(Puede tener el menú haciendo clic en el escritorio "Xnest").
... y si se siente realmente aventurero, puede iniciar una sesión nativa en otra consola virtual (lea las otras respuestas) yendo a una de ellas con Ctrl-Alt-F1, inicie sesión y
que normalmente se abrirá en Ctrl-Alt-F8.
Aviso : los entornos de escritorio modernos no están diseñados para ejecutarse simultáneamente, para el mismo usuario, en dos consolas diferentes. Por lo tanto, no use
gnome-shell
ounity
cosas modernas al hacer estos experimentos, o podría estropear su configuración.Notas al pie:
(1) Hablando de alrededor de 1980-90 aquí.
(2) Por ejemplo, tenía una computadora portátil con 256k de RAM. Fue dolorosamente lento en la interfaz gráfica (¡en blanco y negro!), Pero rápido en la consola. Así que hice la mayor parte de mi trabajo (de edición
C
,LaTeX
y archivos similares) en modo consola, y se conecta con el medio ambiente gráfico sólo cuando realmente se necesita.fuente
startx
inicia la sesión x o la interfaz gráfica donde ve una pantalla de inicio de sesión y cualquier cosa más que una simple consola ASCII (sesión de texto).Está recibiendo este error porque la sesión x ya está iniciada y está intentando ejecutar el comando desde dentro de la sesión x en tty7.
tty7 es la interfaz de usuario que existe en ctrl+ alt+ f7(xsession predeterminada).
tty1 es la interfaz de usuario que existe en ctrl+ alt+ f1.
tty2 es la interfaz de usuario que existe en ctrl+ alt+ f2. . . y así.
tty1 - tty6 son sesiones de texto y puede iniciar sesión con su nombre de usuario y contraseña en una de estas pantallas. Después de iniciar sesión, puede ejecutar el comando
startx
y la xsession se iniciará en tty7 si aún no se está ejecutando y tty8 si tty7 ya está ejecutando una xsession.Niveles de ejecución:
nivel de ejecución 0 Detener: apaga el sistema.
modo de usuario único de nivel de ejecución 1: modo para tareas administrativas.
nivel de ejecución 2 Multiusuario gráfico con funciones de red: inicia el sistema normalmente.
nivel de ejecución 3-5 No utilizado pero configurado igual que el nivel de ejecución 2
reinicio de nivel de ejecución 6: reinicia el sistema.
El término nivel de ejecución se refiere a un modo de operación en uno de los sistemas operativos de la computadora que implementan la inicialización de estilo V del sistema Unix. Convencionalmente, existen siete niveles de ejecución, numerados del cero al seis; aunque se pueden usar hasta diez, de cero a nueve [cita requerida]. S a veces se usa como sinónimo de uno de los niveles. Solo se ejecuta un "nivel de ejecución" en el arranque: los niveles de ejecución no se ejecutan secuencialmente, es decir, se ejecuta el nivel de ejecución 2 O 3 O 4, no 2, luego 3 y luego 4. - es.wikipedia.org/wiki/Runlevel
fuente
unity
ognome-shell --replace
o inclusognome-panel
ometacity --replace
.Simplemente significa en un tty diferente .
Citando la pregunta vinculada:
Por defecto, Ubuntu tiene 7 tty's.
1-6
son solo línea de comando,7
ejecuta su sesión X (su escritorio gráfico normal).Para acceder a ellos, use este atajo de teclado: Ctrl+ Alt+F1
(cambiando
F1
a F1-F6 para acceder al terminal que necesita)Para volver a su sesión X (el escritorio normal), use: Ctrl+ Alt+F7
after logging on to a text-mode console
simplemente significa iniciar sesión en un tty diferente y escribir el comando:fuente
Como señala Rmano, startx es un enfoque muy antiguo. Hace mucho tiempo cuando se usaba esto, el binario X11 se instaló setuid root.
Acabo de probar esto en una máquina virtual y, de hecho,
startx
falla como usted describe, por defecto.chmod u+s /usr/lib/xorg/Xorg
aunque eso lo arregla.No recomiendo hacer que
Xorg
sea root setuid. El mundo se ha alejado de eso por Buena Razón. Pero si estás jugando en una máquina virtual desechable, así es como hacer questartx
funcione.fuente
Ejemplo mínimo de QEMU + Buildroot
Mi forma favorita de aprender qué hace algo es haciendo un ejemplo mínimo que lo ejecute.
En Ubuntu, esto es difícil ya que un segundo
startx
podría entrar en conflicto con su escritorio actual./ubuntu//a/519164/52975 propone
Xnest
, pero con QEMU + Buildroot podemos ir aún más mínimo y crear una microdistro con solo X11 instalado.De esta manera, debería ser más fácil entender lo que está sucediendo.
Describí la creación de la distribución en: /unix//a/306116/32558
Una vez que tienes la imagen ejecutándose en QEMU, comienzas en un shell TTY.
Entonces cuando lo haces:
inicia una GUI X11:
Ahora eche un vistazo a la fuente
startx
dentro de esa distribución, que es solo un script de shell.Es un simple envoltorio más
/usr/bin/xinit
, y que pasa/etc/X11/xinit/xinitrc
axinit
.Si abre
/etc/X11/xinit/xinitrc
, contiene las siguientes líneas:entonces vemos que comienza:
twm
: un administrador de ventanas muy simple y antiguoxclock
yxterm
que vemos en pantallaPara
/usr/bin/xinit
, podemos hacer:que dice que:
fuente