View Full Version : Recuperare output da processo in esecuzione
Ho un processo in esecuzione, lanciato da un'altra shell. Devo recuperare l'output attuale di questo programma. Il programma fa uso ncurses.
In pratica possiamo fare l'esempio di top. Top gira continuamente in memoria ed io devo recuperarne l'output.
Avete qualche idea ?
DanieleC88
04-06-2009, 19:00
Ho provato:
top | tee /tmp/outfile
E su un'altra shell:
cat /tmp/outfile
Riesco a vedere bene la schermata di top. Ovviamente cat termina dopo aver stampato la prima schermata, non rimane continuamente a monitorarlo, ma può essere un inizio. :boh:
Diciamo che io non posso intervenire sul file lanciato. L'output del file lanciato deve essere comunque disponibile nell'altra shell ;)
Caldwell83
05-06-2009, 11:37
la shell che lancia questo programma come fa a recuperare l'output?
Tony Lio
05-06-2009, 11:53
prova con logger ;)
la shell che lancia questo programma come fa a recuperare l'output?
Il programma viene lanciato tramite GNU screen.
Quindi si passa all'output del programma con il comando screen -r
Caldwell83
05-06-2009, 12:55
Potresti lanciare il programma di cui vuoi tracciare l'output in background ridirgendo l'output in un file.
Cosi da riuscire a vederlo da qualunque shell tu voglia.
Con top questo non funziona perchè in background si stoppa, ma potrebbe funzionare con il tuo programma.
Diciamo che l'altra gestione del programma la voglio lasciare così. Mi ci trovo bene. Al massimo posso cambiare qualcosa nell'avvio del programma, ma comunque lo voglio lasciare accessibile in background tramite GNU screen.
Hell-VoyAgeR
06-06-2009, 14:48
screen -x
ti permette di "condividere" la sessione screen.
Io lo uso per la "teleistruzione" dei sistemisti in erba :p
Ok, su questo ci siamo, ma a me serve l'output per riprenderlo da un altro programma, quindi mi serve o su file o in una variabile d'ambiente ;)
Ho abilitato il logging di screen e sembra funzionare, ora però il problema si sposta su altri lidi, in quanto il programma è un programma ncurses.
Ovviamente nell'output ci sono quintali di informazioni (mi immagino relative alla gestione del terminale, colori e roba del genere). Io devo interpretare tutto per fare uno strip del "contorno" dalle informazioni testuali vere e proprie.
Giusto per provare:
screen -L top
Premere q dopo qualche secondo.
Editare screenlog.0 (o .1)
@Hell-VoyAgeR
non ho capito come fai a condividere la consolle
tramite internet?
Hell-VoyAgeR
06-06-2009, 18:05
Ok, su questo ci siamo, ma a me serve l'output per riprenderlo da un altro programma, quindi mi serve o su file o in una variabile d'ambiente ;)
Ho abilitato il logging di screen e sembra funzionare, ora però il problema si sposta su altri lidi, in quanto il programma è un programma ncurses.
Ovviamente nell'output ci sono quintali di informazioni (mi immagino relative alla gestione del terminale, colori e roba del genere). Io devo interpretare tutto per fare uno strip del "contorno" dalle informazioni testuali vere e proprie.
Giusto per provare:
screen -L top
Premere q dopo qualche secondo.
Editare screenlog.0 (o .1)
Ecco questo era un piccolo particolare che non avevo afferrato.
@Hell-VoyAgeR
non ho capito come fai a condividere la consolle
tramite internet?
Si, non spesso ma generalmente funziona cosi': mi chiamano, entro nel server da remoto, faccio collegare in -x quello che sta dall'altra parte e "mostro" come fare le operazioni richieste.
@Hell-VoyAgeR
scusa... ma... metti in condivisione una shell ?
in che modo?
Credo che lanci una shell con screen su un account condiviso ;)
Poi dopo entrambi usano screen per accedere alla shell.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.