أفضل طريقة لتشغيل تطبيق Java كخدمة *nix Daemon أو Windows Service؟

StackOverflow https://stackoverflow.com/questions/25530

سؤال

أنا أبحث عن أفضل طريقة لتشغيل تطبيق Java باعتباره برنامجًا خفيًا *NIX أو خدمة Windows.لقد بحثت في غلاف خدمة جافا, ، ال مشروع أباتشي كومنز "jsvc", ، و ال مشروع أباتشي كومنز "procrun".حتى الآن، يبدو أن Java Service Wrapper هو الخيار الأفضل...لكنني أتساءل عما إذا كان هناك أي منتجات مرخصة أخرى "صديقة للمصدر المفتوح".

هل كانت مفيدة؟

المحلول

لقد حققت نجاحًا كبيرًا مع Java Service Wrapper بنفسي.لم ألقي نظرة على الآخرين، ولكن نقاط القوة الرئيسية في ServiceWrapper هي:

  • دعم رائع لنظام x-platform - لقد استخدمته على نظامي التشغيل Windows وLinux، ووجدته سهلاً على كليهما
  • التوثيق القوي - المستندات واضحة ومباشرة، مع أمثلة رائعة
  • دعم عميق لكل منصة - هناك بعض الميزات الفريدة في نظام إدارة خدمة النوافذ والتي يتم دعمها بشكل مثالي بواسطة برنامج تضمين الخدمة (بدون إعادة التشغيل).وعلى نظام التشغيل Windows، سترى أيضًا اسم التطبيق الخاص بك في قائمة العمليات بدلاً من "java.exe" فقط.
  • متوافقة مع المعايير - على عكس العديد من البرامج النصية المخصصة لـ Java init، تميل البرامج النصية الخاصة بتضمين الخدمة إلى أن تكون متوافقة مع معايير LSB.يمكن أن يصبح هذا أمرًا مهمًا للغاية إذا كنت تريد إدارة توفر عالي من شيء مثل Linux Heartbeat/HA.

على أية حال، فقط سنتي 2...:)

نصائح أخرى

خيار آخر هو WinRun4J.هذا مخصص لنظام التشغيل Windows فقط ولكنه يحتوي على بعض الميزات المفيدة:

  • دعم 32 بت و 64 بت
  • API للوصول إلى سجل الأحداث والتسجيل
  • يمكن تسجيل الخدمة لتكون معتمدة على خدمات أخرى (أي يجب بدء تشغيل الخدمة A والخدمة B قبل الخدمة C)

كما أنها صديقة للمصدر المفتوح (CPL)، لذلك لا توجد قيود على الاستخدام.

(الكشف الكامل:أنا أعمل في هذا المشروع).

هل هناك أي سمات خاصة تحتاج إلى تطبيقها (مثل إدارة الموارد الموجهة بنظام التشغيل) والتي تحتاج إلى دعمها؟بخلاف ذلك، بالنسبة لنظام التشغيل Unix، يجب أن تكون قادرًا على إضفاء الطابع الخفي على تطبيقك عن طريق كتابة نص init.d مناسب وإعداد تطبيقك ليبدأ تلقائيًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top