Ejecución de session de pantalla independiente pero sin terminación en el mismo bash

Aquí ya hay muchas preguntas como esta, pero cada uno recomienda (una variante de) la siguiente solución:

screen -dmS somename bash -c "/path/to/script; bash -l" 

por ejemplo, cuando termina el script , ejecute un nuevo bash .

Lamentablemente, esto no funciona para mí, porque

  • el script utiliza la variable $ BASHPID para algo
  • la script se ejecuta siempre, por ejemplo, necesita terminarlo con CTRL-C
  • y después de la terminación i debe tener el mismo shell que ejecuta el script (mismo $BASHPID )

Por lo tanto, la pregunta es:

  • Cómo iniciar la screen en modo separado (por ejemplo, en el arranque) – normalmente esto se hace por el -dm
  • debe iniciar el shell
    • mejor, si puede iniciarlo como "login" shell, por ejemplo, qué lee mi .profile , pero esto puede ser superado con el source ~/.profile en el script mismo
    • el script comienza otro progtwig (binary) lo que se ejecutará hasta CTRL-C
  • y después de la terminación de la script de script que debe get el mismo bash (con el mismo $BASHPID (porque la necesidad de ejecutar otros scripts de lo que depende de ella)

En resumen necesita simular el siguiente trabajo interactivo:

  • screen inicio
  • echo $BASHPID
  • run-some-commands dentro de la pantalla (el último ejecuta hasta CTRL-C) – por ejemplo, ejecute el /path/to/script
  • separar (ctrl-a d)

Después de lo anterior, más tarde, puedo hacer

  • volver a conectar ( screen -ARR )
  • CTRL-C
  • y puede continuar … con el mismo
  • echo $BASHPID # producirá lo mismo que arriba

¿Alguna idea? (pensando en el -X pero no funciona, en algún lugar probablemente cometer un error)

Parece que la respuesta aquí es para su caso de uso. En breve:

 bash --init-file <(echo "yourcommand")