Passare a un altro TTY dopo aver eseguito startx e restituito interruzioni Xorg


8

Sono sempre stato curioso di una idiosincrasia di Xorg che sembra accadere su ogni macchina su cui l'ho provato; ogni volta che avvio una nuova istanza X su un TTY usando manualmente startx (ovvero, senza l'aiuto di un display manager), passo a un altro TTY e quindi tento di tornare al mio TTY originale, il framebuffer di X si interrompe e vengo lasciato a la mia shell originale con X ancora in esecuzione. Colpire ^ C o ^ D si smettere di X, ma dovrò eseguire startx / xinit di nuovo, perdendo la sessione originale. Vale a dire:

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

Romperà il mio buffer X su TTY1. Sembra che le applicazioni che fanno affidamento su Wayland / Mir per la composizione gestiscano la commutazione TTY come mi aspetterei, ma per le applicazioni che utilizzano X che non sono state avviate con un display manager come LightDM, non potendo tornare alla sessione X che ho avviato manualmente è un vero dolore. Esiste un modo per correggere questo problema in modo che io possa tornare alla mia sessione X quando cambio TTY?


Non capisco. Non hai X su tty1. Inoltre ctrl-alt-f7 è tty7 dove è il più delle volte eseguito X server. Devi modificare il tuo post per renderlo più chiaro. Se si utilizza 12.04, è sicuro che non si sta utilizzando Wayland / Mir. Nemmeno nel 15.04.
solsTiCe

@solsTiCe Non c'è stata una sessione X su TTY1 finché non ho eseguito startx per crearne una su TTY1 ...
joshumax,

@solsTiCe Temo di non vedere l'ambiguità nella mia domanda, puoi chiarire cosa potrebbe non essere chiaro?
joshumax,

1
@solsTiCe Certamente non lo sono, sto semplicemente chiedendo cosa trovi poco chiaro nella mia domanda in modo da poterlo risolvere?
joshumax,

Risposte:


2

Ah, la soluzione era relativamente semplice, invece di funzionare

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

In esecuzione

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

Impedirà la rottura di X quando cambio TTY.


... il che indica che non si è realmente "rotto", ma è semplicemente finito su un diverso terminale virtuale, il primo terminale virtuale disponibile , che avrebbe potuto essere qualsiasi cosa tty2a tty63seconda di come il tuo sistema sembra essere configurato quando si tratta di virtuale utilizzo terminale. Ovviamente tty1non era disponibile, poiché in quel momento era in esecuzione una shell di accesso.
JdeBP,

@JdeBP Ne ho parlato con le persone di Xorg e sembra che non abbia nulla a che fare con la selezione automatica dei terminali disponibili - ma piuttosto passando un parametro di terminale virtuale a startx, startx metterà X in uno "stato persistente "(come startx di default avvia una sessione X non persistente sul vt corrente se è disponibile e fallisce immediatamente se non può farlo.
joshumax

-1 Penso che ci sia un altro modo per farlo senza problemi. Penso che questo non sia il modo di fare quello che fai.
Léo Léopold Hertz 준영

1
@Masi Forse vuoi spiegare perché pensi che questo metodo non sia così buono e spiegare il tuo modo migliore per raggiungerlo? Sarebbe molto più serendipito di questa ambiguità.
Seth
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.