PDA

View Full Version : GNU screen e dump della scheramta di un programma


cionci
06-05-2009, 09:12
Ho un programma che gira tramite GNU screen (in pratica il programma gira in un termiale virtuale).
Ora...io dovrei fare un dump della schermata del programma in file txt.
screen offre già la possibilità di farlo con lo shortcut CTRL-a h e salva un file chiamato hardcopy.0 nella directory di lavoro del programma.
Io sarei interessato ad eseguire la stessa funzione, ma da script bash.
Ho provato così, ma non funziona (per fare una prova ho eseguito una semplice shell):

#!/bin/sh

(
sleep 1
echo "ls -la"
echo "^ah"
sleep 2
echo "^ad"
) | screen -r

Ritorna l'errore: Must be connected to a terminal.
Da un certo punto di vista lo capisco, ma c'è un qualce modo di ingannarlo o qulache metodo alternativo per avere questo dump ?

masand
06-05-2009, 10:13
Il tasto "Stamp"? :stordita:

No vabbè, non ci ho capito niente di quello che cerchi :fagiano:

cionci
06-05-2009, 10:31
Prova ad usare screen...prova top.

screen top

Ora premi Ctrl-a d per uscire.
Scrivi

screen -r

e ritorni al top lanciato prima.
Ora mi serve un dump di quella scheramata, ma fatto tramite script bash. Senza script bash basta entrare con screen -r e dare il comando Ctrl-a h, seguito poi da Ctrl-a d per uscire. Ho provato a dare gli stessi comandi, ma non mi esegue screen -r negli script bash e ritorna quell'errore.

masand
06-05-2009, 10:49
Domanda stupida... ma se esegui invece lo script come root?

cionci
06-05-2009, 10:51
Domanda stupida... ma se esegui invece lo script come root?
Non cambia niente, lui si incavola perché non ha un terminale...bisognerebbe fargli credere che ha un terminale in esecuzione in qualche maniera.

masand
06-05-2009, 12:06
Con i simboli &&?

cionci
06-05-2009, 12:25
Con i simboli &&?
Fammi un esempio...
In ogni caso prova con top, è la stessa identica cosa che devo fare io.

masand
06-05-2009, 13:03
Fammi un esempio...
In ogni caso prova con top, è la stessa identica cosa che devo fare io.

Sono al lavoro (ho XP in ufficio). Ma a casa proverò di sicuro, ormai mi hai incuriosito :)

Ti ho detto di usare && perché a volte l'ho usato per lanciare applicazioni da terminale e allo stesso tempo avere il terminale libero...

Non so se può fare al caso tuo o se semplicemente c'entra qualcosa.

cionci
06-05-2009, 13:17
In questo caso non mi dovrebbe risolvere il problema ;)
Ho già tutto pronto usando screen, mi parte l'applicazione come servizio.