
Estou tentando criar uma tela separada e enviar um comando, mas isso não parece estar funcionando.
Se eu inserir os seguintes comandos:
$ screen -ls
No Sockets found in /var/run/screen/S-ec2-user.
$ screen -dmS myscreen
$ screen -ls
There is a screen on:
9175.myscreen (Detached)
1 Socket in /var/run/screen/S-ec2-user.
$ screen -S myscreen -X ls
Depois anexei na tela para ver se o comando foi executado:
$ screen -r myscreen
Tudo que recebo é uma linha de comando em branco, como se nada tivesse acontecido.
Alguém sabe por que isso está falhando e quais comandos posso usar para realmente executar o comando dentro da tela?
Nota: Quero ficar separado da tela, se possível, e apenas enviar comandos de fora para a tela. Isso ocorre porque meu plano é executar várias telas, usando meios automatizados (por exemplo, script bash).
Responder1
Finalmente consegui que isso funcionasse.
Olhando paraalguns exemplos de código de screen
uso, parece que o parâmetro -X espera a palavra: stuff
antes do comando real, e também o comando deve ser colocado entre aspas duplas ("xyz").
Além disso, para executar o comando, o Enterpressionamento de tecla deve ser enviado junto com ele. Indo emboraeste artigo sobre inserção de caracteres especiais, consegui inserir o pressionamento de tecla pressionando Ctrl+ V, Enter.
A linha de comando ficou assim:
$ screen -S myscreen -X stuff 'ls^M'