Хук выключения не срабатывает при запуске с «lein run»

У меня есть следующий код:

(ns test-hook.core)

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

и следующий проект.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"]])

когда я запускаю его с помощью «lein run», хук выключения выполняется только при нормальном выполнении программы, а не при получении сигнала SIGINT (Ctrl-C)

тот же код при запуске вне lein успешно выполняет хук выключения, даже когда получение SIGINT.

как я могу выполнить хук выключения при запуске из lein и прерывании с помощью Ctrl-C?

17
задан Samus_ 1 June 2012 в 18:31
поделиться