【发布时间】:2012-06-01 18:31:06
【问题描述】:
我有以下代码:
(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 中止时如何执行关闭挂钩?
【问题讨论】:
标签: clojure leiningen shutdown-hook clojure-java-interop