0 votos

El subcomando 'stuff' no es efectivo en la sesión 'screen' hasta que no se ha adjuntado

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).

1voto

Chuck Fry Puntos 101

La respuesta se encontró en SuperUser: https://superuser.com/questions/342463/gnu-screen-cant-stuff-commands-unless-the-screen-is-attached

Cuando se inicia una sesión de Screen en modo separado (screen -d -m), no se selecciona ninguna ventana, por lo que las entradas enviadas posteriormente con screen -X se pierden. Tienes que especificar explícitamente que quieres enviar las pulsaciones a la ventana 0 (-p 0). Esto es una buena idea de todos modos, en caso de que se creen otras ventanas en esa sesión de Screen por cualquier razón.

Por ejemplo

screen -r test -p 0 -X stuff "$(printf "%s\r" 'whoami')"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X