Si je lance les blocs shell babel suivants
#+BEGIN_SRC sh :session one :results output
ssh staging
#+END_SRC
#+BEGIN_SRC sh :session one :results output
hostname
#+END_SRC
Org crée un tampon shell appelé one
, s'exécute ssh staging
puis, après la connexion, s'exécute hostname
lors du transfert. Cependant, si je modifie la commande ssh et l'exécute à nouveau, elle tente de l'exécuter à partir de la première session, à partir de l'hôte intermédiaire. Si je ferme le tampon, one
il réinitialise la session car la prochaine fois qu'une commande est exécutée avec ce nom de session, il la recrée. Ce que je n'ai pas pu trouver, c'est une méthode pour forcer un bloc babel particulier à toujours initialiser une nouvelle session.
Je suis conscient que pour certaines langues (elisp en particulier), cela ne serait pas possible. Je suppose que je pourrais ajouter la session à un bloc elisp contenant (kill-buffer "one")
, mais je préfère que ce soit un argument d'en-tête si possible. Je suis également conscient que pour cet exemple, je pourrais simplement combiner les deux en un seul bloc sans session, mais je suis intéressé par des séquences plus compliquées.
Existe-t-il une :prologue
commande ou un autre argument spécial :session
qui force ce bloc à initialiser un nouveau shell à chaque appel?
org-babel-initiate-session
.