Iniciar sessão de tela desanexada

8

Gostaria de iniciar a sessão desanexada na tela, mas quero avaliar algumas partes. Parece que a tela suporta apenas um executável e binário. Eu quero fazer alguma mágica como:

screen -d -m script.sh 2>&1 | tee logfile.log

mas isso aparentemente não funciona. A citação não ajuda aqui. A única idéia que tenho é criar um script de wrapper que fará esse redirecionamento e depois chamá-lo diretamente, como:

screen -d -m wrapper_script.sh

Alguma outra ideia? Obrigado.

lzap
fonte

Respostas:

8

Você pode fazer com que a tela execute um shell bash, que por sua vez executa seu script.

Acabei de testar isso:

screen -d -m bash -c 'vmstat 5 3 2>&1 | tee logfile.log'

o que me deu o seguinte:

kenny@t520:~$ cat logfile.log 
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 1  0      0 5864764 103072 884512    0    0    66    36 1236 1818 17  6 77  0
 0  0      0 5864252 103072 884512    0    0     0     0  311  574  1  1 98  0
 1  0      0 5861532 103080 884512    0    0     0     4 1244 2302  4  2 94  0

Portanto, isso deve funcionar também:

screen -d -m bash -c 'script.sh 2>&1 | tee logfile.log'
Kenny Rasschaert
fonte
Oh, eu estava tentando isso, mas comi um erro de digitação! Muito Obrigado.
Lzap 27/07/12
4

Você já tentou especificar a -Lopção de tela para gravar em um log?

Você também pode especificar o nome do log usando o arquivo ~/.screenrc- aqui está o conteúdo do meu como um exemplo:

defutf8 on
deflog on
logfile /home/me/convert.log
multiuser on
njahnke
fonte
Obrigado, isso também deve ser feito! Voto positivo, mas a resposta de Kennys é mais genérica. OBRIGADO.
Lzap 27/07/12