O envio de comandos para a tela desanexada não funciona

1

Estou tentando criar uma tela desanexada e enviar um comando, mas isso não parece estar funcionando.

Se eu digitar 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

Então eu anexei a tela para ver se o comando foi executado:

$ screen -r myscreen

Tudo que eu obtenho é uma linha de comando em branco, como se nada tivesse acontecido.

Alguém sabe por que isso está falhando e quais comandos eu posso usar para realmente fazer com que o comando seja executado dentro da tela?

Observação: eu quero ficar desanexado da tela, se possível, e apenas enviar comandos para a tela de fora. Isso ocorre porque meu plano é executar várias telas, usando meios automatizados (por exemplo, script bash).

    
por jonathanconway 16.03.2015 / 03:34

1 resposta

1

Finalmente consegui isso funcionar.

Olhando para alguns exemplos de código de screen usage , parece que o parâmetro -X espera a palavra: stuff antes do comando atual, e também o comando deve ser colocado entre aspas duplas ("xyz"). / p>

Também para executar o comando, o pressionamento de teclas Enter deve ser enviado junto com ele. Saindo do artigo sobre inserção de caracteres especiais , consegui inserir o pressionamento de tecla pressionando Ctrl + V , Digite .

A linha de comando ficou assim:

$ screen -S myscreen -X stuff 'ls^M'
    
por jonathanconway 16.03.2015 / 03:54