Beim Lesen über Ubuntu fand ich die folgende Aussage .....
Wenn der Anzeigemanager im Standard-Runlevel nicht standardmäßig gestartet wird, können Sie X nach der Anmeldung an einer Textmodus-Konsole auf eine andere Weise starten, indem Sie startx über die Befehlszeile ausführen.
Was bedeutet es, ein Standard-Runlevel zu sein? Und als ich das auf meinem Terminal ausprobierte, bekam ich Folgendes:
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
Antworten:
Es war einmal (1), als der Arbeitsspeicher der Computer in Kilobyte und die Festplatten in Megabyte gemessen wurden, wurde das ständige Ausführen der grafischen Benutzeroberfläche als schädlich angesehen.
Die meisten Unix-Computer wurden für wissenschaftliche Berechnungen und Simulationen in Mehrbenutzerumgebungen verwendet, und die auf ihnen ausgeführte grafische Oberfläche würde den für sie verfügbaren Speicher und die CPU-Leistung verringern.
Wenn Sie also eine grafische Oberfläche brauchten, haben Sie sie gerade mit
startx
(2) gestartet .startx
Grundsätzlich wird ein Xserver (der grafische "Treiber") und ein darauf laufender Befehl ausgeführt, bei dem es sich in der Regel um einen Fenstermanager handelt . Standardmäßig befinden sich die ausgeführten Befehle in der~/.xinitrc
Datei in Ihrem Basisverzeichnis oder in einer anderen generischen Systemdatei.Moderne Systeme werden von Grund auf als grafisches System betrachtet, das die ganze Zeit läuft. Daher hat wahrscheinlich niemand die Funktionsweise
startx
seit Ewigkeiten überprüft - das erklärt eine Menge seltsamer Verhaltensweisen, die man haben kann.Wenn Sie experimentieren und die guten alten Zeiten spüren möchten, tun Sie am besten Folgendes:
A) installieren
Xnest
undfvwm
. Xnest ist ein Grafikserver innerhalb eines Servers, eine Art Server, der in Ihrem normalen System als Fenster geöffnet wird. Fvwm ist ein sehr einfacher Fenstermanager, der damals sehr beliebt war. Sie benötigen auch alte Pixmap-Schriftarten.B) Schreiben Sie diese Datei irgendwo in Ihr Heimatverzeichnis und rufen Sie sie auf
~/test
:C) Ausführen (Hinweis:
startx
Wird normalerweise zuerst mit dem Client-Befehl, dann mit einem doppelten Bindestrich und dann mit einem Server-Befehl ausgeführt. Wie ich bereits sagte, haben die meisten neuen Systeme keine sinnvollen Standardeinstellungen für sichstartx
.).... und Sie haben einen 80er Workstation-Bildschirm:
(Sie können das Menü aufrufen, indem Sie auf den Desktop "Xnest" klicken.)
... und wenn Sie sich wirklich abenteuerlustig fühlen, können Sie eine native Sitzung auf einer anderen virtuellen Konsole starten (lesen Sie die anderen Antworten), indem Sie mit Strg-Alt-F1 zu einer davon wechseln, sich anmelden und
Das wird normalerweise bei Strg-Alt-F8 geöffnet.
Hinweis : Moderne Desktop-Umgebungen können nicht gleichzeitig für denselben Benutzer auf zwei verschiedenen Konsolen ausgeführt werden. So verwenden Sie keine
gnome-shell
oderunity
oder moderne Dinge , wenn diese Experimente zu tun, oder man kann vermasseln Ihre Konfiguration.Fußnoten:
(1) Apropos 1980-90 hier.
(2) Ich hatte zum Beispiel einen Laptop mit 256 KB RAM. In der grafischen Benutzeroberfläche (B & W!) War es schmerzhaft langsam, in der Konsole jedoch bissig. Also ich habe die meisten meiner Arbeit (Bearbeitung
C
,LaTeX
und ähnliche Dateien) im Konsolenmodus, und nur in der grafischen Umgebung eingeschaltet , wenn es wirklich erforderlich ist .quelle
startx
Startet die xsession oder die grafische Oberfläche, auf der Sie einen Anmeldebildschirm und mehr als nur eine ASCII-Konsole (Textsitzung) sehen.Sie erhalten diesen Fehler, weil die xsession bereits gestartet ist und Sie versuchen, den Befehl in der xsession auf tty7 auszuführen.
tty7 ist die Benutzerschnittstelle , die an existiert ctrl+ alt+ f7(default xsession).
tty1 ist die Benutzeroberfläche , die an existiert ctrl+ alt+ f1.
tty2 ist die Benutzeroberfläche , die an existiert ctrl+ alt+ f2. . . und so weiter.
tty1 - tty6 sind Textsitzungen und Sie können sich in einem dieser Bildschirme mit Ihrem Benutzernamen und Passwort anmelden. Nachdem Sie sich angemeldet haben, können Sie den Befehl
startx
ausführen und die xsession wird in tty7 gestartet, wenn sie noch nicht ausgeführt wird, und in tty8, wenn tty7 bereits eine xsession ausführt.Run Levels:
Run-Level 0 Halt - Fährt das System herunter.
Run-Level-1-Einzelbenutzermodus - Modus für administrative Aufgaben.
Run-Level 2 Grafischer Mehrbenutzer mit Netzwerk - Startet das System normal.
Runlevel 3-5 Nicht verwendet, aber wie Runlevel 2 konfiguriert
run-level 6 Reboot - Startet das System neu.
Der Begriff Runlevel bezieht sich auf einen Betriebsmodus in einem der Computerbetriebssysteme, die eine Initialisierung nach Unix System V implementieren. Herkömmlicherweise existieren sieben Runlevel, die von null bis sechs nummeriert sind; es können jedoch bis zu zehn von null bis neun verwendet werden. S wird manchmal als Synonym für eine der Ebenen verwendet. Beim Booten wird nur ein "Runlevel" ausgeführt - Runlevel werden nicht sequentiell ausgeführt, dh entweder Runlevel 2 ODER 3 ODER 4 wird ausgeführt, nicht 2 dann 3 dann 4. - de.wikipedia.org/wiki/Runlevel
quelle
unity
odergnome-shell --replace
oder sogargnome-panel
oder ausführen könnenmetacity --replace
.Es bedeutet einfach , an einem anderen tty .
Zitieren der verknüpften Frage:
Standardmäßig hat Ubuntu 7 tty.
1-6
Werden nur über die Befehlszeile ausgeführt, wird7
Ihre X-Sitzung ausgeführt (Ihr normaler grafischer Desktop).Verwenden Sie diese Tastenkombination, um darauf zuzugreifen: Ctrl+ Alt+F1
(Wechseln Sie
F1
zu F1-F6, um auf das Terminal zuzugreifen, das Sie benötigen.)Um zu Ihrer X-Sitzung (dem normalen Desktop) zurückzukehren, verwenden Sie: Ctrl+ Alt+F7
after logging on to a text-mode console
bedeutet einfach, sich bei einem anderen tty anzumelden und den Befehl einzugeben:quelle
Wie Rmano feststellt, ist startx ein sehr alter Ansatz. Als dies verwendet wurde, wurde die X11-Binärdatei setuid root installiert.
Ich habe dies gerade in einer VM ausprobiert und in der Tat
startx
versagt, wie Sie beschreiben, standardmäßig.chmod u+s /usr/lib/xorg/Xorg
behebt das allerdings.Ich weiß nicht empfehlen zu machen
Xorg
sei setuid root. Die Welt hat sich aus gutem Grund davon entfernt. Aber wenn Sie in einer wegwerfbaren VM herumspielen, ist das die richtige Vorgehensweisestartx
.quelle
QEMU + Buildroot minimales Beispiel
Am liebsten lerne ich, was etwas bewirkt, indem ich ein minimales Beispiel mache, in dem es ausgeführt wird.
Unter Ubuntu ist dies schwierig, da eine Sekunde
startx
möglicherweise mit Ihrem aktuellen Desktop in Konflikt steht./ubuntu//a/519164/52975 schlägt vor
Xnest
, aber mit QEMU + Buildroot können wir noch minimaler werden und eine Mikrodistribution mit nur X11 erstellen.Auf diese Weise sollte es einfacher sein zu verstehen, was los ist.
Ich habe die Erstellung der Distribution unter /unix//a/306116/32558 beschrieben
Sobald Sie das Image auf QEMU ausgeführt haben, starten Sie mit einer TTY-Shell.
Wenn Sie dann tun:
es startet eine X11 GUI:
Schauen Sie sich nun die Quelle für
startx
diese Distribution an, die nur ein Shell-Skript ist.Es ist ein einfacher Wrapper
/usr/bin/xinit
, und der geht/etc/X11/xinit/xinitrc
überxinit
.Wenn Sie öffnen
/etc/X11/xinit/xinitrc
, enthält es die folgenden Zeilen:Wir sehen also, dass es losgeht:
twm
: ein sehr einfacher und alter Fenstermanagerxclock
undxterm
was wir auf dem Bildschirm sehenDenn
/usr/bin/xinit
wir können tun:was sagt, dass:
quelle