Si ejecuto los siguientes bloques de shell babel
#+BEGIN_SRC sh :session one :results output
ssh staging
#+END_SRC
#+BEGIN_SRC sh :session one :results output
hostname
#+END_SRC
Org crea un búfer de shell llamado one
, se ejecuta ssh staging
y luego, después de conectarse, se ejecuta hostname
en la puesta en escena. Sin embargo, si modifico el comando ssh y lo ejecuto nuevamente, intenta ejecutarlo desde la sesión uno, desde el host de preparación. Si cierro el búfer one
, restablece la sesión, ya que la próxima vez que se ejecute un comando con ese nombre de sesión, lo vuelve a crear. Lo que no he podido encontrar es un método para forzar a un bloque de babel en particular a inicializar siempre una nueva sesión.
Soy consciente de que para algunos idiomas (elisp en particular) esto no sería posible. Supongo que podría anteponer la sesión con un bloque elisp que contenga (kill-buffer "one")
, pero preferiría que este fuera un argumento de encabezado si es posible. También soy consciente de que para este ejemplo simplemente podría combinar los dos en un solo bloque sin sesión, pero estoy interesado en secuencias más complicadas.
¿Existe un :prologue
comando o algún otro argumento especial :session
que obligue a ese bloque a inicializar un nuevo shell en cada invocación?
org-babel-initiate-session
.