我有以下代码:
(ns test-hook.core)
(defn -main []
(.addShutdownHook (Runtime/getRuntime) (Thread. #(println "shutdown")))
(println "start")
(doseq [i (range 1 6)]
(Thread/sleep 1000)
(println i)))
和以下 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"]])
当我使用“lein run”运行它时,关闭挂钩仅在正常程序执行时执行,而不是在接收 SIGINT (Ctrl-C) 时执行
即使在接收到 SIGINT 时,在 lein 之外运行的相同代码也会成功执行关闭挂钩。
从 lein 运行并使用 Ctrl-C 中止时,如何执行关闭挂钩?