首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用"lein run“运行时,关闭钩子不会触发

当使用"lein run“运行时,关闭钩子不会触发
EN

Stack Overflow用户
提问于 2012-06-02 02:31:07
回答 1查看 3.4K关注 0票数 19

我有以下代码:

代码语言:javascript
复制
(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

代码语言:javascript
复制
(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“运行它时,shutdown钩子只在正常的程序执行时执行,而不是在收到SIGINT (Ctrl-C)时执行。

相同的代码在lein之外运行时,即使在接收到SIGINT时也能成功执行关闭钩子。

从lein运行并使用Ctrl-C中止时,如何执行shutdown钩子?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-03 00:16:25

你有没有试过用弹床跑步?

代码语言:javascript
复制
lein trampoline run

看起来对我很管用。

AFAIK "lein trampoline“不嵌套JVM,因此您的Ctrl-C不会被leiningen捕获,而是被您的代码捕获。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10855559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档