2013-03-02 27 views
27

Dường như với tôi rằng sự khác biệt duy nhất giữa lein runlein trampoline là sau đó, bỏ JVM của Leiningen để tiết kiệm bộ nhớ.Tại sao `lein run` không phải` lein trampoline`?

Điều này dường như luôn là ý tưởng hay, vậy tại sao tính năng này không được bao gồm trong lein run và sau đó thoát khỏi lein trampoline?

+4

Từ kinh nghiệm cá nhân (và tôi chưa bao giờ thực sự xác minh điều này vì vậy tôi có thể sai), tấm bạt lò xo làm cho nó không thể theo dõi quá trình bằng cách sử dụng một daemon giám sát, ví dụ như giám sát viên. –

+2

Trải nghiệm của tôi hoàn toàn ngược lại với Erik. Sử dụng daemontools trên FreeBSD, 'lein run' trong tập lệnh chạy của dịch vụ có nghĩa là 'svc -d' chấm dứt quá trình lein và mồ côi dịch vụ con JVM. 'lein trampoline' đã sửa lỗi này. Phụ thuộc vào yêu cầu của daemon giám sát của bạn, tôi đoán vậy. –

Trả lời

22

lein trampoline có thể được sử dụng cho bất kỳ tác vụ leiningen nào, không chỉ lein run. Ví dụ: lein trampoline test.

Về cơ bản, lein trampoline giết quá trình leiningen ban đầu để chỉ JVM thực tế sinh ra để chạy công cụ Clojure của bạn vẫn hoạt động khi nhiệm vụ bắt đầu chạy. Điều này rất hữu ích cho kịch bản lệnh shell kể từ khi giết JVM thực sự sẽ không giết quá trình leiningen, và ngược lại.

+1

Có thể, tôi câm, nhưng theo cách nào thì điều này trả lời câu hỏi gốc? – osxdirk

+0

Vì tính năng "tấm bạt lò xo" rất hữu ích cho nhiều nhiệm vụ hơn "chạy lein" nên xóa "lein trampoline" và mặc định "lein run" để hoạt động như "lein trampoline run" hôm nay có nghĩa là bạn sẽ không thể thực hiện "lein trampoline kiểm tra". –

Các vấn đề liên quan