En MacOS Catalina 10.15.7, versión de pantalla 4.00.03 (FAU) 23-Oct-06:
Estoy intentando utilizar el comando 'screen' (/usr/bin/screen) para ejecutar un programa en segundo plano. Creo una sesión de pantalla independiente para ejecutar mi programa, luego uso el subcomando 'stuff' de screen para enviar un comando al programa. Pero el programa nunca ve ese comando.
Si me conecto a la sesión y luego me desconecto, las "cosas" funcionan como espero.
¿Cómo puedo hacer que 'screen' reenvíe el comando al programa sin adjuntarlo primero? Esto se utiliza para hacer girar una serie de procesos sin la intervención del usuario, por lo que adjuntar y robar el foco de la terminal no es una opción.
He aquí un ejemplo mínimo:
# Create the detached screen session
screen -dmS test /bin/bash
# Send it a command to execute
screen -r test -X stuff "$(printf "%s\r" 'whoami')"
# Attach to the session to see if the command has executed (type control-A d to detach)
screen -r test
# Send the same command again
screen -r test -X stuff "$(printf "%s\r" 'whoami')"
# Attach again and see that the second command has executed
screen -r test
(Nota: He enviado esto a Ask Different porque Apple utiliza una versión muy antigua de "pantalla" que, según tengo entendido, no se utiliza en ninguna otra plataforma).