Se eu executar os seguintes blocos de shell babel
#+BEGIN_SRC sh :session one :results output
ssh staging
#+END_SRC
#+BEGIN_SRC sh :session one :results output
hostname
#+END_SRC
A organização cria um buffer de shell chamado one
, executa ssh staging
e, em seguida, após a conexão, executa hostname
na preparação. No entanto, se eu ajustar o comando ssh e executá-lo novamente, ele tentará executá-lo a partir da sessão um, do host intermediário. Se eu fechar o buffer, one
ele redefinirá a sessão como na próxima vez que qualquer comando for executado com esse nome de sessão, ele será recriado. O que não consegui encontrar é um método para forçar um bloco babel específico a sempre inicializar uma nova sessão.
Estou ciente de que, para alguns idiomas (elisp em particular), isso não seria possível. Suponho que eu poderia preceder a sessão com um bloco elisp contendo (kill-buffer "one")
, mas preferiria que esse fosse um argumento de cabeçalho, se possível. Também estou ciente de que, para este exemplo, eu poderia simplesmente combinar os dois em um único bloco sem sessão, mas estou interessado em sequências mais complicadas.
Existe um :prologue
comando ou algum outro argumento especial para as :session
forças que bloqueiam a inicialização de um novo shell em cada chamada?
org-babel-initiate-session
.