Gostaria de iniciar algum aplicativo dentro da sessão da tela, mas a partir de um script.
Sem script, eu apenas lançaria a tela, em seguida, abriria N janelas com crtl-ac e executaria programas em cada janela.
Eu tentei o seguinte
screen -d -m -S test
screen -S test -X exec tail -f /var/log/messages
screen -S test -X screen
screen -S test -X exec tail -f /var/log/xinetd.log
Mas quando eu anexo a cauda da sessão não está sendo executada. Se eu anexar a sessão logo depois screen -d -m -S startup
e executar screen -S startup -X exec tail -f /var/log/messages
em outro terminal, ela funcionará.
Perdi algo ?
Edite após a resposta AlexD:
Uma meia solução de trabalho é
screen -d -m -S test tail -f /var/log/messages
screen -S test -X screen tail -f /var/log/xinetd.log
O comando de encadeamento da tela (aquele após -X) com o comando está funcionando enquanto exec provavelmente não é porque o exec espera que uma janela atual seja definida enquanto não houver uma atual quando a tela for desanexada. Obrigado a AlexD por essas dicas.
Mas há um efeito colateral estranho: quando o programa para (se você anexar a sessão da tela e apertar a cauda ou a cauda), a janela da tela será fechada.
Portanto, o comportamento não é o mesmo que Crtl-A c e execute o comando
Outro efeito colateral é que você não pode encadear 2 comandos
screen
sempre termina quando o comando com o qual se foi lançado extremidades - é uma característica normal da ferramenta :) ..assim se você correrscreen top
, quando você sairtop
,screen
vai sair também