Shutdown Hook feuert nicht beim Laufen mit "Lein Run"

Ich habe folgenden Code:

(ns test-hook.core)

(defn -main []
  (.addShutdownHook (Runtime/getRuntime) (Thread. #(println "shutdown")))
  (println "start")
  (doseq [i (range 1 6)]
    (Thread/sleep 1000)
    (println i)))

und das folgende project.clj

(defproject test-hook "1.0.0-SNAPSHOT"
  :aot :all
  :main test-hook.core
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.2.0"]])

Wenn ich es mit "lein run" ausführe, wird der Shutdown-Hook nur bei normaler Programmausführung ausgeführt, nicht beim Empfang von SIGINT (Strg-C).

Wenn derselbe Code außerhalb von lein ausgeführt wird, wird der Shutdown-Hook auch dann erfolgreich ausgeführt, wenn SIGINT empfangen wird.

wie kann ich den shutdown hook ausführen lassen, wenn ich von lein aus laufe und mit strg-c abbreche?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage