Portál AbcLinuxu, 9. května 2025 16:31

Dotaz: Připojení k běžícímu screenu a nstravení DISPLAY

25.2.2011 09:33 Ondra Holub | skóre: 6
Připojení k běžícímu screenu a nstravení DISPLAY
Přečteno: 464×
Odpovědět | Admin
Ahoj. Pokud se připojím k běžící screen session, potřebuji v každém okně přenastavit proměnnou DISPLAY, protože se obvykle změní. Ve všech oknech mám spuštěný bash.

Dá se nějak nacpat příkaz do všech oken screenu? Zkoušel jsem
screen -X stuff 'command^M'
ještě než se připojím. To funguje, ale dostanu to jenom do jednoho okna. Okno se dá specifikovat parametrem -p. Ale pořád nevím, jak zjistit počet existujících oken. Sice bych si mohl říct, že nebudu mít víc než např. 20 oken a prostě to natvrdo pustit pro 20 oken, ale to je takové nouzové nehezké řešení.

Nebo se to možná dá udělat nějak úplně jinak a zbytečně to komplikuji.

Díky za rady.

Řešení dotazu:


Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

25.2.2011 15:30 Sten
Rozbalit Rozbalit vše Re: Připojení k běžícímu screenu a nstravení DISPLAY
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle jsem řešil tak, že jsem při přihlášení proměnné prostředí dumpnul do ~/.environment (env >~/.environment) a do .bashrc přidal PROMPT_COMMAND="source ~/.environment;$PROMPT_COMMAND"
28.2.2011 15:15 Ondra Holub | skóre: 6
Rozbalit Rozbalit vše Re: Připojení k běžícímu screenu a nstravení DISPLAY
Dík za radu. To bohužel nevyřeší můj problém. Asi jsem to blbě popsal - jde mi hlavně o to, abych nějak automaticky updatoval DISPLAY ve všech běžících oknech screenu.

Tedy: jeden den něco spustím ve screenu, např. 2 okna. Tam v pohodě můžu spouštět i X-ové aplikace. Pak se od screenu odpojím (ne-X-ové programy pořád běží). Připojím se odjinud a v tu chvíli už mám jiný obsah proměnné DISPLAY, než je ten, který zůstal uvnitř aplikace běžící ve screenu. A já potřebuji ještě než se do toho screenu znovu připojím příkazem
screen -D -R -T xterm
ještě nacpat do každého běžícího okna v tom screenu
export DISPLAY=neco
Do jednoho okna to nacpu takto:
screen -p 2 -X stuff "export DISPLAY=$DISPLAY^M"
kde parametrem-pvyberu okno. Akorát nevím, jak programově zjistit, do kterých oken to poslat. V tuto chvíli to prostě pošlu do prvních 10 oken s tím, že tolik jich tam určitě nemám. Tak jsem to prostě udělal takto:
for i in 0 1 2 3 4 5 6 7 8 9; do screen -p $i -X stuff "export DISPLAY=$DISPLAY^M"; done
Ale moc se mi to nelíbí.
Řešení 1× (Ondra Holub (tazatel))
28.2.2011 15:37 Sten
Rozbalit Rozbalit vše Re: Připojení k běžícímu screenu a nstravení DISPLAY
PROMPT_COMMAND dělá to, že před zobrazením promptu spustí zadaný příkaz. Zde ten, že načte proměnné prostředí uložené v nějakém souboru. Dělá to automaticky ve všech oknech screenu (přesněji to dělá ve všech Bashech, i těch mimo screen). Jediný možný problém je, že se to načte až při příštím promptu, ne hned.
2.3.2011 12:26 Ondra Holub | skóre: 6
Rozbalit Rozbalit vše Re: Připojení k běžícímu screenu a nstravení DISPLAY
Ahoj. Myslím, že to je to pravé řešení. Díky.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.