reklama

Automatické pozastavení programů při přepnutí na ttyXXX

Mám spuštěné grafické rozhraní (PIXEL v Raspbianu) a v něm terminálový emulátor s okny(taby), které stahují přes wget.
Pozoruji divnou věc : po přepnutí pomocí Ctrl Alt F1 do konzole si spustím iftop nebo nethogs. po nějaké době (k žádnému suspendu ani vypnutí monitoruje nedojde) že přenosy ustanou na nulu. něco mezi 1 a 5 minutami. Po přepnutí do Ctrl Alt F7 a zpět F1 se opět obnoví flow....  Není to žádný bug měřících nástrojů, že by třeba ukazovaly nulu kvůli tomu, že byly spuštěny právě teď. Prostě jednoduše se nic nestahuje, velikost souboru se nemění (po té minutě asi). Zatímco když to nechám v desktopu, tak velikost souboru přibývá.

čím to je? nějaký spořič,co suspendne procesy terminálu nebo samotný wget nebo co?
Jak to tohle nežádoucí chování zrušit?

reklama


Re:Automatické pozastavení programů při přepnutí na ttyXXX
« Odpověď #1 kdy: 25. 03. 2020, 14:52:55 »
Jediné, co mě napadá je, že terminálový program přestane přijímat vstup a wget po nějaké době zaplní buffer a zablokuje se při zapisování na standardní výstup. Tahle hypotéza by se dala otestovat použitím wget -q.

RDa

  • *****
  • 846
    • Zobrazit profil
    • E-mail
Re:Automatické pozastavení programů při přepnutí na ttyXXX
« Odpověď #2 kdy: 25. 03. 2020, 15:20:08 »
čím to je? nějaký spořič,co suspendne procesy terminálu nebo samotný wget nebo co?
Jak to tohle nežádoucí chování zrušit?

To je normalni chovani te PIPE vazby mezi spustenym programem a tvym emulatorem terminalu (mohl jsi napsat co presne to je za program).
Poustej programy skrze screen, ktery zajisti preruseni te standardni vazby.

Re:Automatické pozastavení programů při přepnutí na ttyXXX
« Odpověď #3 kdy: 25. 03. 2020, 15:32:51 »
Jojo, chtěl jsem to napsat, ale nevěděl jsem jestli to je xfce4terminal nebo lxterminal, je to ten druhý.
Mimochodem wget je spuštěn s argumentem -c -O vystup.zip (ono by totiž šlo  -O - | soubor.zip), ale nevím zda to je relevantní.

Tušil jsem že to bude něco "v systému" a, a zároveň jsem i tušil že v tom bude mít prsty wget.

Problém totiž je, že se desktopové prostředí zaseklo a sestřelením bych přišel o linky a neuložila by se ani historie příkazů. Takže jsem se přepl do prvního tty a odtud čas od času sleduju progress.
A ještě jedna věc, jde to nějak  přemostit ( -q nebo screen ) udělat runtime, když už wget běží?  nedostanu se k  totiž k tomu terminálu, samozřejmě z tty0 mohu zjistit pid přes ps (vidím lxpanel->lxterminal -> bash ->wget), něco na způsob Ctrl+Z, bg, disown, nohup. (mimochodem, nevyřešil bych to některý z těchto triků jako zmíněný screen?)  Existuje nějaký článek na rootu o příkazech tohoto typu (+ screen) , pracovně bych to nazval mikromanagent procesů konzole/terminálu/shellu)?



* až teď mě napadlo, že bych mohl využít ten ps auxf | grep wget pro získání znění příkazů wget,abych o ně nepřišel, ale  stejně bych měl zaseklé GUI (typický zámrz Raspberry pi. M Nebo rovnou ps auxf | grep wget > dump.txt a restartovat do gui.... ale to už mělo cenu na začátku, teď už to doklepu
« Poslední změna: 25. 03. 2020, 15:40:48 od Pivotal »

RDa

  • *****
  • 846
    • Zobrazit profil
    • E-mail
Re:Automatické pozastavení programů při přepnutí na ttyXXX
« Odpověď #4 kdy: 25. 03. 2020, 16:25:16 »
wget umi resume, kdyz protokol je seekovatelny (coz byva na webu vse krome skriptem generovaneho obsahu).
Takze to klidne sestrelit muzes.

reklama


SB

Re:Automatické pozastavení programů při přepnutí na ttyXXX
« Odpověď #5 kdy: 26. 03. 2020, 17:17:26 »
A ještě jedna věc, jde to nějak  přemostit ( -q nebo screen ) udělat runtime, když už wget běží?  nedostanu se k  totiž k tomu terminálu, samozřejmě z tty0 mohu zjistit pid přes ps (vidím lxpanel->lxterminal -> bash ->wget), něco na způsob Ctrl+Z, bg, disown, nohup...

Disown by měl zabrat, ale co na to myslet hned na začátku a spustit operaci v Tmuxu? Dělávám to tak na serveru, kdybych přišel o spojení. Teď jsem to zkoušel, dle ps je Tmux (část) spuštěn procesem 1, takže přežije i restart GUI, přičemž jej lze spustit i z grafického terminálu, takže netřeba přepínat do konzole.

 

reklama