
Estoy intentando crear una pantalla separada y luego enviarle un comando, pero parece que esto no funciona.
Si ingreso los siguientes 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
Luego lo adjunté a la pantalla para ver si se ejecutó el comando:
$ screen -r myscreen
Todo lo que obtengo es una línea de comando en blanco, como si nada hubiera pasado.
¿Alguien sabe por qué esto falla y qué comandos puedo usar para que el comando se ejecute dentro de la pantalla?
Nota: Quiero permanecer alejado de la pantalla si es posible y simplemente enviar comandos a la pantalla desde afuera. Esto se debe a que mi plan es ejecutar varias pantallas, utilizando medios automatizados (por ejemplo, script bash).
Respuesta1
Finalmente logré que esto funcionara.
Mirando aalgunos ejemplos de código de screen
uso, parece que el parámetro -X espera la palabra: stuff
antes del comando real, y además el comando debe estar entre comillas dobles ("xyz").
Además, para ejecutar el comando, la Enterpulsación de tecla debe enviarse junto con él. saliendoeste artículo sobre cómo insertar caracteres especiales, Logré ingresar la pulsación de tecla presionando Ctrl+ V,.Enter
La línea de comando se veía así:
$ screen -S myscreen -X stuff 'ls^M'