Wenn ich die folgenden Babel-Shell-Blöcke ausführe
#+BEGIN_SRC sh :session one :results output
ssh staging
#+END_SRC
#+BEGIN_SRC sh :session one :results output
hostname
#+END_SRC
Org erstellt einen Shell-Puffer namens one
, wird ausgeführt ssh staging
und nach dem Verbinden hostname
beim Staging ausgeführt. Wenn ich jedoch den Befehl ssh optimiere und erneut ausführe, wird versucht, ihn innerhalb der ersten Sitzung vom Staging-Host aus auszuführen. Wenn ich den Puffer schließe one
, wird die Sitzung zurückgesetzt, wenn ein Befehl das nächste Mal mit diesem Sitzungsnamen ausgeführt wird, wird er neu erstellt. Was ich nicht finden konnte, ist eine Methode, um einen bestimmten Babel-Block zu zwingen, immer eine neue Sitzung zu initialisieren.
Mir ist bewusst, dass dies für einige Sprachen (insbesondere Elisp) nicht möglich wäre. Ich nehme an, ich könnte der Sitzung einen Elisp-Block voranstellen, der enthält (kill-buffer "one")
, aber dies wäre, wenn möglich, eher ein Header-Argument. Mir ist auch bewusst, dass ich für dieses Beispiel die beiden einfach ohne Sitzung zu einem einzigen Block kombinieren könnte, aber ich bin an komplizierteren Sequenzen interessiert.
Gibt es einen :prologue
Befehl oder ein anderes spezielles Argument, :session
das diesen Block zwingt, bei jedem Aufruf eine neue Shell zu initialisieren?
org-babel-initiate-session
.