2011-09-29 10 views
5

Tôi có một ứng dụng giao diện điều khiển (viết bằng Java), sẽ chạy trên một máy Linux cho đến khi nó được dừng lại.Java daemon trong Linux: Lựa chọn?

Việc ghi nhật ký được thực hiện bởi chính ứng dụng.

Ứng dụng cần phải dừng lại bất cứ khi nào có phiên bản mới (i. E. Tôi đăng nhập, dừng ứng dụng, sao chép tệp JAR mới và sau đó khởi chạy lại).

Các tùy chọn để triển khai điều này, ngoài những tùy chọn được chỉ định bên dưới là gì?

cách biết để làm điều đó:

1) dịch vụ Tanuki wrapper

2) nohup java -jar myapp-1.32.jar &

+0

Mặc dù nó không phù hợp với nhu cầu của bạn hoàn toàn, bạn có thể xem capistrano. – leonm

+0

Hãy cẩn thận để tìm một dịch vụ giúp bạn có thể nghe tín hiệu tắt máy để tắt dịch vụ của bạn một cách duyên dáng. –

+0

Ứng dụng giao diện điều khiển của bạn có thể phát hiện rằng ứng dụng cần tắt không? –

Trả lời

2

Một số bản phân phối Linux hiện đại đã chuyển sang upstart. Đó là một daeomon bắt đầu và dừng tất cả các dịch vụ khác. Tôi chắc chắn sẽ xem xét điều đó. Vì nó giải quyết một số vấn đề phức tạp với các kịch bản bắt đầu sẵn sàng sản xuất. Nhược điểm là nó không có chức năng cụ thể java.

+0

Cảm ơn đề xuất của bạn. Liên kết bạn đã đăng đề cập đến một bài viết trên Wikipedia về sắp xếp bên ngoài. Tôi không hiểu những gì nó đã làm với upstart. –

+0

Xin lỗi, đó là liên kết sai. Ý tôi là: http://upstart.at/ – jmg

6

Tôi sử dụng Java Service Wrapper, nhưng bạn đã đề cập chỉnh sửa. Tôi nghĩ rằng nó nên phù hợp với nhu cầu của bạn.

Apache Commons Daemon cũng phổ biến: http://commons.apache.org/daemon/, nhưng tôi chưa bao giờ sử dụng nó.

0
cũng

Có commons apache Deamons http://commons.apache.org/proper/commons-daemon/jsvc.html

Jsvc là một tập hợp các thư viện và các ứng dụng để làm các ứng dụng Java chạy trên UNIX dễ dàng hơn.

Jsvc cho phép ứng dụng (ví dụ: Tomcat) thực hiện một số thao tác đặc quyền dưới dạng gốc (ví dụ: liên kết với cổng < 1024) rồi chuyển danh tính thành người dùng không có đặc quyền.