Portál AbcLinuxu, 6. června 2024 09:13


Dotaz: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz

22.9.2021 21:43 Dědek
Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Přečteno: 584×
Odpovědět | Admin
Dobrý večer, chtěl bych se zeptat, mám bash skript který vygeneruje celkem složité výsledky které jsou zobrazeny přes celý terminál a jejich vygenerování trvá poměrně dlouho navíc se výsledky neustále aktualizují. Z tohoto terminálu s výsledky bych potřeboval spustit nějaký další doplňkový bash script a potřebuji vidět průběh tohoto scriptu taky v terminále, můžu to nějak udělat? Můžu pomocí bash scriptu otevřít nějaký jiný terminál, spustit v něm příkaz a po ukončení terminál zase ukončit? Děkuji za jakékoli nápady. Děkuji.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.9.2021 22:17 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ak to púšťaš v grafickom termináli, tak z neho v tom skripte spusti s ampersandom druhý terminál s parametrom toho druhého skriptu. Vyskočí nové okno, a po dopočítaní zmizne jak gáfor.
22.9.2021 22:27 Dědek
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Omlouvám se, jedná so pouze o server Debian, bez GUI.
22.9.2021 22:39 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Server, predpokladám že práca na ňom je cez vzdialené pripojenie (ssh alebo putty). V tom prípade je možné vypisovať do logu ktorý si človek dá zobrazovať cez tail -f v inom pripojení.

Ale rozumnejšie by bolo mať na toto lepší návrh užívateľského rozhrania ovládacej aplikácie (client server) ktorá by tie okná so skriptami riešila a zobrazovala čo je treba. Hoci aj ako dashboard s ciferníkmi ukazujúci v koláčovom grafe koľko z dávky je hotové (a akou rýchlosťou to ide).
22.9.2021 23:04 Dědek
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Můžeš to prosím trošku více rozvést? Díky
22.9.2021 23:47 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Ktorý z tých dvoch návrhov, zápis do logu a jeho sledovanie, alebo ako funguje klient server architektúra?
23.9.2021 00:01 Dědek
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Jestli můžu poprosit, tak bych v tuto chvíli volil druhou možnost.
22.9.2021 22:19 X
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Neco ve smyslu tmux, screen? Trochu to nechapu bezne je k dispozici terminal tty1-tty6, v kazdem si muzes delat individualne co chces..
22.9.2021 22:30 Dědek
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Ano, něco takového ale musí to ovládat automaticky pouze ten script.
k3dAR avatar 23.9.2021 01:00 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
pokud ten hlavni script pustis v tmux (nebo byobu), muzes z nej zavolat:
# pro rozdeleni horizontalne
tmux split-window -h "druhej_script"

# nebo pro rozdeleni vertikalne
tmux split-window -v "druhej_script"
subokno druheho skriptu se zavre samo po jeho dokonceni, muzes osetrit napr.:
# at pocka 10s
tmux split-window -h "druhej_script; sleep 10s"

# nebo at ceka na stlaceni any key
tmux split-window -h "druhej_script; read -n 1 -p 'press any key'"
pokud nestlacis nic do doby nez prijde na radu dalsi pusteni "druhej_script", rozdeli se znovu a uvidis tak vystupy druheho vickdat, dokud je nezavres...
porad nemam telo, ale uz mam hlavu... nobody
k3dAR avatar 23.9.2021 01:47 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
btw: ten druhej_script to pusti a prvni dal pokracuje, pokud bys chtel aby prvni cekal na dokonceni druheho:
tmux split-window -h "druhej_script; read -n 1 -p 'press any key'; tmux wait-for -S druhej_dojel"
echo "Cekam na dokonceni druhej_script"
tmux wait-for druhej_dojel
(ukazano na poslednim prikladu, samozrejme princip wait-for muzes pridat k jakemukoliv)
porad nemam telo, ale uz mam hlavu... nobody
Jendа avatar 24.9.2021 19:15 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já to dělám tak, že výsledky zapisuji do souboru (v tmpfs, aby se neošoupával disk) a v jiné session mám watch cat soubor.
Já to s tou denacifikací Slovenska myslel vážně.
28.9.2021 14:52 jiwopene | skóre: 31 | blog: Od každého trochu…
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
watch cat? Proč? V případě velkého souboru (tj. hodně řádků) se stejně ukáže jen začátek. Doporučil bych spíš buďto watch head soubor1 souborN (při použití s více soubory je výhodné to, že pod sebou máte více souborů i s „titulkem“ (názvem souboru), nebo tail -fn0 soubor1 souborN (vypisuje připsaný obsah do souborů, v případě použití s více soubory je zobrazuje zároveň a s opět titulky.
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
Jendа avatar 28.9.2021 15:46 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
watch cat? Proč?
Protože v mém případě se nejedná o velký soubor s hodně řádky, ale o malé soubory periodicky přepisované.

Logy samozřejmě sleduji přes tail -f.
28.9.2021 14:58 jiwopene | skóre: 31 | blog: Od každého trochu…
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak píše Jenda, doporučil bych výstup zapisovat do několika souborů (v bashi na konec souboru připíšete pomocí >>soubor za příkazem), případně současně do souboru a na stdout (|tee -a soubor), a v druhém (třetím, …) okně si spustit tail -f soubor.
# Ukaž posledních 10 řádků a potom to, co je od spuštění (tailu) připsáno:
tail -f soubor

# Ukazuj jen to, co je od spuštění připsáno:
tail -fn0 soubor
Pokud zadáte více souborů (jako např. v tail -f soubor1 soubor2), budou se oba ukazovat zároveň, vždy oddělené hlavičkou s jejich názvem. Takto (pro soubory ab):
==> b <==
Út 28. září 2021, 14:47:56 CEST

==> a <==
Út 28. září 2021, 14:47:58 CEST

==> b <==
Út 28. září 2021, 14:47:58 CEST
Út 28. září 2021, 14:48:00 CEST

==> a <==
Út 28. září 2021, 14:48:01 CEST

==> b <==
Út 28. září 2021, 14:48:02 CEST

==> a <==
Út 28. září 2021, 14:48:04 CEST

==> b <==
Út 28. září 2021, 14:48:04 CEST
Út 28. září 2021, 14:48:06 CEST

==> a <==
Út 28. září 2021, 14:48:07 CEST

==> b <==
Út 28. září 2021, 14:48:08 CEST
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
30.9.2021 21:43 Win11Pro
Rozbalit Rozbalit vše Re: Jak si odskočit ze scriptu v bash do jiného okna a spustit příkaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
V unixu vseobecne bezici script pauznes CTRL+Z a prikazem bg ho odpuzjes a bude bezet na pozadi. Ted muzes delat co chces. Pokud se chces vratit k procesu na pozadi (treba zjistit stav) tak prikazem fg. Pak muzes opet ctrl+z a bg.

Efektivnejsi je ale pouzit screen nebo tmux. Ty dokonce dokazou detachnout proces a muzes se treba i odhlasit z konzole, a pak po novem prihlaseni attachnout nazpet obrazovku procesu.

No a pokud si na konzoli pocitace tak mas par virtualnich konzoli jako Alt+F1, Alt+F2 atd.

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.