¿Cómo probar si la pantalla está iniciada, luego ejecutar un comando en la pantalla y separarla?

¿Cómo probar si la pantalla está iniciada, luego ejecutar un comando en la pantalla y separarla?
screen -list
There are screens on:
        4278.chat       (07/16/15 14:26:47)     (Detached)
        15127.notifier  (07/16/15 13:27:57)     (Detached)

Mi objetivo es:

  • Si la pantalla de chat no se inicia, iníciela; de lo contrario, ciérrela.
  • ejecutar un comando en la sesión de chat (ej node chat.js:)
  • desconectar sesión de chat

Respuesta1

Respuesta de varias partes:

  • Si la pantalla de chat no se inicia, iníciela; de lo contrario, ciérrela.
screen -S chat -X quit || screen -S chat

También podría, detachen lugar de finalizar la sesión de pantalla, si eso es lo que quería decir.

  • ejecutar un comando en la sesión de chat (por ejemplo: nodo chat.js)

Si desea iniciar una nueva pantalla y ejecutar un comando, entonces

screen -dm -S chat && screen -S chat -X stuff 'command-to-execute-in-screen-subshell
'

Tenga en cuenta la nueva línea incrustada dentro de las comillas. Si la pantalla ya se está ejecutando, puedes dejar de lado la primera mitad.

  • desconectar sesión de chat
screen -S chat -X detach

Véase también la respuesta a la primera pregunta.

Todo esto está razonablemente documentado en el manual.

información relacionada