I programmi X sanno con quale sessione X dovrebbero parlare guardando la DISPLAY
variabile d'ambiente.
Per prima cosa devi scoprire cosa DISPLAY
è impostato nella sessione X in cui vuoi che il tuo programma venga eseguito. Fallo immettendo il comando echo $DISPLAY
all'interno di un X-terminal in quella sessione X. In genere ottenere qualcosa di simile :0.0
viene emesso.
Diciamo che si desidera avviare il programma eccellente xclock
programma nella sessione X dove DISPLAY
è :0.0
, ma si vuole fare questo alla console. Quindi premi Alt-Ctrl-F1 per passare a quella console, quindi digita:
DISPLAY=:0.0 xclock # variables set w/ a command are local to that command
Quindi torni a X premendo Alt-Ctrl-F7 o Alt-Ctrl-F8 (o forse qualche altro tasto F, a seconda del tuo sapore di Linux) e guarda il nuovo grazioso orologio a muro che hai lì.
In effetti avresti potuto eseguire il comando sopra in qualsiasi shell su quella stessa macchina (tramite SSH, in qualsiasi sessione X, su qualsiasi console ecc.) - il fatto che hai specificato DISPLAY=:0.0
prima del comando significa che la xclock
finestra apparirà sempre in la stessa sessione X.
In effetti - a parte il fatto che i programmi X lo guardano - non c'è nulla di speciale nella DISPLAY
variabile. Normalmente quando si avviano programmi da un terminale X, iniziano nel posto giusto perché DISPLAY
è già stato impostato per te.
Invece di usare il comando sopra, puoi anche dividerlo in due prima impostando DISPLAY
e poi eseguendo xclock
. In questo caso l' DISPLAY
impostazione persisterà fino alla chiusura della shell e tutti i successivi programmi X avviati da lì si apriranno nella stessa sessione X di xclock
.
# variables set w/o a command are local to the shell,
export DISPLAY=:0.0 # unless exported
xclock