هل هناك أي طريقة، في جافا، للتحقق من حالة خدمة ويندوز؟[مغلق]
-
02-07-2019 - |
سؤال
أنا أبحث عن مكتبة تسمح لي بالبحث عن حالة خدمة Windows للتحقق من بدء تشغيل الخدمة وتشغيلها.لقد بحثت في مكتبة Sigar، لكنها تابعة لـ GPL ولذلك لا أستطيع استخدامها.مطلوب ترخيص تجاري أو BSD(ish) لأنه سيتم تجميعه في البرامج التجارية.
المحلول
إذا لم يكن هناك أي شيء آخر يساعدك، فحاول التفكير في نهج مختلف قليلاً (إذا استطعت بالطبع)، على سبيل المثال:
- هناك الكثير من البرامج المجانية/غير المجانية التي تقوم بالمراقبة، بما في ذلك مراقبة خدمة Windows (على سبيل المثال.ناجيوس، زابيكس، الخ.).تحتوي هذه الشاشات عادةً على واجهة برمجة تطبيقات مفتوحة حيث يمكن دمج تطبيق Java الخاص بك بعدة طرق مختلفة.
- إذا كان لديك التحكم في تطبيق الخدمة المعتمد، فاكشف عن طريقة أخرى مختلفة لتطبيق Java الخاص بك للتحقق (على سبيل المثال.تشغيل مستمع وهمي على منفذ، أو إنشاء ملف، وما إلى ذلك).خدمات Windows ليست شيئًا مشتركًا بين الأنظمة الأساسية، وبالتالي فهي ليست شيئًا تتوقع دعمه في أي وقت قريب.
نصائح أخرى
لا أعتقد أن هناك أي طريقة Java خالصة للقيام بذلك لأن بعض أنظمة التشغيل لا تملك مفهوم "الخدمات" مثل Windows.في مشاريعنا، قمنا بكتابة غلاف حول استدعاءات الأمر "sc" من سطر الأوامر.للحصول على حالة الخدمة، يمكنك القيام بما يلي:
sc \\استعلام بعض أجهزة الكمبيوتر "اسم الخدمة الخاص بي"
سيتعين عليك تحليل الإخراج يدويًا ولكنه بسيط جدًا.
لا أعرف أي مكتبات، ولكن اعتمادًا على مدى التفاصيل التي تحتاجها للحصول على بعض أوامر shell وتحليل الإخراج.
صافي البداية اسم الخدمة
إما أن يبدأ الخدمة، أو سيعطيك رسالة خطأ تخبرك أنها قد بدأت بالفعل.لا أعرف أي أمر من شأنه أن يمنحك الحالة فقط.