Podczas czytania o Ubuntu znalazłem następujące oświadczenie .....
Jeśli menedżer wyświetlania nie jest domyślnie uruchamiany na domyślnym poziomie działania, możesz uruchomić X w inny sposób, po zalogowaniu się do konsoli tekstowej, uruchamiając startx z wiersza poleceń.
Co to znaczy być domyślnym poziomem działania? A kiedy spróbowałem tego na moim terminalu, otrzymałem to:
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
Odpowiedzi:
Dawno, dawno temu (1), gdy pamięć komputerów była mierzona w kilobajtach, a dyski w megabajtach, uruchamianie interfejsu graficznego przez cały czas było uważane za szkodliwe.
Większość komputerów uniksowych była wykorzystywana do obliczeń naukowych i symulacji w środowiskach wielu użytkowników, a działający na nich interfejs graficzny zmniejszyłby dostępną pamięć i moc procesora.
Kiedy więc potrzebujesz interfejsu graficznego, właśnie go uruchomiłeś
startx
(2).startx
w zasadzie uruchamia Xserver (graficzny sterownik) i uruchamiane na nim polecenie, które zwykle jest menedżerem okien . Domyślnie uruchamiane polecenia znajdują się w~/.xinitrc
pliku w katalogu domowym lub w innym ogólnym pliku systemowym.Uważa się, że we współczesnych systemach od podstaw działa system graficzny cały czas, więc prawdopodobnie nikt nie sprawdził działania
startx
wieków - to tłumaczy wiele dziwnych zachowań, które możesz mieć.Jeśli chcesz eksperymentować i poczuć stare dobre czasy, najlepiej jest wykonać następujące czynności:
A) zainstaluj
Xnest
ifvwm
. Xnest jest serwerem graficznym wewnątrz serwera, rodzajem serwera, który otworzy się jako okno w normalnym systemie. Fvwm to bardzo prosty menedżer okien, który był wówczas bardzo popularny. Będziesz także potrzebował starych czcionek pixmap.B) zapisz gdzieś ten plik, na przykład w swoim domowym katalogu, i nazwij go
~/test
:C) Uruchom (zauważ:
startx
zwykle jest uruchamiany najpierw z poleceniem klienta, następnie z podwójnym myślnikiem, a następnie z poleceniem serwera. Jak powiedziałem, większość nowych systemów nie ma rozsądnych ustawień domyślnych dlastartx
samego.).... i masz ekran stacji roboczej z lat 80 .:
(Możesz otworzyć menu, klikając pulpit „Xnest”).
... a jeśli masz ochotę na przygodę, możesz rozpocząć sesję natywną na innej wirtualnej konsoli (przeczytaj pozostałe odpowiedzi), przechodząc do jednej z nich za pomocą Ctrl-Alt-F1, zaloguj się i
który normalnie otworzy się na Ctrl-Alt-F8.
Uwaga : nowoczesne środowiska komputerowe nie są zaprojektowane do jednoczesnego działania dla tego samego użytkownika w dwóch różnych konsolach. Dlatego nie używaj
gnome-shell
aniunity
nowoczesnych rzeczy podczas wykonywania tych eksperymentów, bo możesz popsuć konfigurację.Przypisy:
(1) Mówiąc o około 1980-90 tutaj.
(2) Na przykład miałem laptopa z 256 KB pamięci RAM. Było boleśnie powolne w interfejsie graficznym (czarno-biały!), Ale zgrabne w konsoli. Więc zrobiłem większość mojej pracy (edycja
C
,LaTeX
i podobnych plików) w trybie konsoli i włączył się do środowiska graficznego tylko wtedy, gdy naprawdę potrzebne.źródło
startx
uruchamia xsession lub interfejs graficzny, w którym widzisz ekran logowania i cokolwiek więcej niż tylko konsolę ascii (sesję tekstową).Otrzymujesz ten błąd, ponieważ Xsession jest już uruchomiony i próbujesz wykonać polecenie z wnętrza Xsession na tty7.
tty7 to interfejs użytkownika, który istnieje w ctrl+ alt+f7 (domyślna xsession).
tty1 to interfejs użytkownika, który istnieje w ctrl+ alt+ f1.
tty2 to interfejs użytkownika, który istnieje w ctrl+ alt+ f2. . . i tak dalej.
tty1 - tty6 to sesje tekstowe i możesz zalogować się za pomocą nazwy użytkownika i hasła na jednym z tych ekranów. Po zalogowaniu możesz uruchomić polecenie,
startx
a xsession rozpocznie się w tty7, jeśli jeszcze nie jest uruchomiony, i tty8, jeśli tty7 już uruchomił xsession.Uruchom poziomy:
run-level 0 Halt - Zamyka system.
run-level 1 Tryb pojedynczego użytkownika - Tryb zadań administracyjnych.
run-level 2 Graficzny wielu użytkowników z obsługą sieci - uruchamia system normalnie.
poziom pracy 3-5 Nieużywany, ale skonfigurowany tak samo jak poziom pracy 2
run-level 6 Reboot - restartuje system.
Termin poziom pracy odnosi się do trybu działania w jednym z komputerowych systemów operacyjnych, które implementują inicjalizację w stylu V systemu Unix. Konwencjonalnie istnieje siedem poziomów pracy, ponumerowanych od zera do sześciu; chociaż można użyć do dziesięciu, od zera do dziewięciu [potrzebne źródło]. S jest czasem używany jako synonim jednego z poziomów. Podczas rozruchu wykonywany jest tylko jeden „poziom pracy” - poziomy uruchamiania nie są wykonywane sekwencyjnie, tzn. Albo uruchamiany jest poziom pracy 2 LUB 3 LUB 4, a nie 2, a następnie 3, a następnie 4. - en.wikipedia.org/wiki/Runlevel
źródło
unity
lubgnome-shell --replace
nawetgnome-panel
lubmetacity --replace
.To po prostu oznacza inny tty .
Cytując powiązane pytanie:
Domyślnie Ubuntu ma 7 tty.
1-6
są tylko wierszem poleceń,7
uruchamia sesję X (zwykły pulpit graficzny).Aby uzyskać do nich dostęp, użyj tego skrótu klawiaturowego: Ctrl+ Alt+F1
(zmiana
F1
na F1-F6, aby uzyskać dostęp do terminalu, którego potrzebujesz)Aby wrócić do sesji X (zwykłego pulpitu), użyj: Ctrl+ Alt+F7
after logging on to a text-mode console
po prostu oznacza zalogowanie się do innego tty i wpisanie polecenia:źródło
Jak zauważa Rmano, startx jest bardzo starym podejściem. Dawno temu, gdy był używany, plik binarny X11 został zainstalowany jako setuid root.
Właśnie wypróbowałem to na maszynie wirtualnej i rzeczywiście,
startx
jak to opisujesz, kończy się niepowodzeniem.chmod u+s /usr/lib/xorg/Xorg
naprawia to jednak.Nie polecam robić
Xorg
roota setuid. Świat odszedł od tego z dobrego powodu. Ale jeśli bawisz się na wyrzuconej maszynie wirtualnej, to właśnie takstartx
działa.źródło
Minimalny przykład QEMU + Buildroot
Moim ulubionym sposobem, aby dowiedzieć się, co coś robi, jest uczynienie minimalnego przykładu, który to pozwala.
Na Ubuntu jest to trudne od sekundy
startx
może spowodować konflikt z bieżącym pulpitem./ubuntu//a/519164/52975 proponuje
Xnest
, ale dzięki QEMU + Buildroot możemy pójść jeszcze bardziej minimalnie i stworzyć mikro dystrybucję z zainstalowanym tylko X11.W ten sposób powinno być łatwiej zrozumieć, co się dzieje.
Opis tworzenia dystrybucji opisałem na: /unix//a/306116/32558
Po uruchomieniu obrazu na QEMU, zaczynasz od powłoki TTY.
Kiedy to zrobisz:
uruchamia GUI X11:
Teraz spójrz na źródło
startx
wewnątrz tej dystrybucji, która jest tylko skryptem powłoki.Jest to prosty, owijka
/usr/bin/xinit
, i przechodzi/etc/X11/xinit/xinitrc
sięxinit
.Jeśli otworzysz
/etc/X11/xinit/xinitrc
, zawiera następujące wiersze:więc widzimy, że zaczyna się:
twm
: bardzo prosty i stary menedżer okienxclock
ixterm
które widzimy na ekranieDla
/usr/bin/xinit
możemy zrobić:co mówi, że:
źródło