Przełączenie na inny TTY po uruchomieniu startx i powrocie powoduje uszkodzenie Xorg

8

Zawsze byłem ciekawy osobliwości Xorga, która zdarza się na każdej maszynie, na której go wypróbowałem; za każdym razem, gdy uruchamiam nową instancję X na TTY ręcznie przy użyciu startx (to znaczy bez pomocy menedżera wyświetlania), przełączam się na inny TTY, a następnie próbuję powrócić do mojego pierwotnego TTY, bufor ramki X pęka i spadam do moja oryginalna powłoka z X nadal działa. Uderzanie ^ C lub D ^ będzie zatrzymać X, ale będę musiał ponownie uruchomić startx / xinit, tracę oryginalnej sesji. To znaczy:

CTRL+ALT+F1
$ startx /usr/bin/xterm -- :1
CTRL+ALT+F7
CTRL+ALT+F1

Zepsuje mój bufor X na TTY1. Wygląda na to, że aplikacje oparte na Wayland / Mir do kompozycji obsługują przełączanie TTY, tak jak się spodziewałem, ale dla aplikacji, które używają X, które nie są uruchamiane za pomocą menedżera wyświetlania, takiego jak LightDM, ponieważ nie można wrócić do sesji X, którą ręcznie uruchomiłem to prawdziwy ból. Czy jest jakiś sposób, aby rozwiązać ten problem, abym mógł wrócić do sesji X po zmianie TTY?

joshumax
źródło
Nie rozumiem. Nie masz X na tty1. Również ctrl-alt-f7 to tty7, gdzie przez większość czasu działa serwer X. Musisz zmodyfikować swój post, aby był bardziej przejrzysty. Jeśli używasz 12.04, na pewno nie używasz Wayland / Mir. Nawet w 15.04.
solsTiCe
@solsTiCe Nie było sesji X na TTY1, dopóki nie uruchomiłem startx, aby utworzyć ją na TTY1 ...
joshumax
@solsTiCe Obawiam się, że nie widzę dwuznaczności w moim pytaniu. Czy możesz wyjaśnić, co może być niejasne?
joshumax
1
@solsTiCe Z całą pewnością nie jestem, pytam tylko, co uważasz za niejasne w moim pytaniu, abym mógł to naprawić?
joshumax
Odpowiedzi na pytania można znaleźć na stronie askubuntu.com/questions/221762 i askubuntu.com/questions/443418 .
JdeBP

Odpowiedzi:

2

Ach, rozwiązanie było stosunkowo proste, zamiast działać

$ startx /usr/bin/xterm -- :1

Bieganie

$ startx /usr/bin/xterm -- :1 vt$(tty | sed -e "s:/dev/tty::")

Zapobiegnie łamaniu się X podczas zmiany TTY.

joshumax
źródło
... co oznacza, że tak naprawdę nie „break”, ale po prostu skończyło się na innym terminalu wirtualną pierwszy dostępny terminala wirtualnego , że mogło być coś od tty2do tty63w zależności od tego, jak system się dzieje, należy skonfigurować, jeśli chodzi o wirtualne użycie terminala. Oczywiście tty1było niedostępne, ponieważ w tym czasie działała na nim powłoka logowania.
JdeBP
@JdeBP Rozmawiałem na ten temat z ludźmi Xorga i wydaje się, że nie ma to nic wspólnego z automatycznym wybieraniem dostępnych terminali - ale przekazując parametr terminalu wirtualnego do startx, startx wprowadzi X w „trwały stan” „(ponieważ startx domyślnie uruchamia nietrwałą sesję X na bieżącym vt, jeśli jest ona dostępna, i natychmiast kończy się niepowodzeniem, jeśli nie może tego zrobić.
joshumax
-1 Myślę, że jest inny sposób, aby to zrobić płynnie. Myślę, że to nie jest sposób na robienie tego, co robisz.
Léo Léopold Hertz -
1
@Masi Może chcesz wyjaśnić, dlaczego uważasz, że ta metoda nie jest tak dobra, i wyjaśnić lepszy sposób jej osiągnięcia? Byłoby to znacznie bardziej przypadkowe niż ta dwuznaczność.
Seth