سؤال

لقد واجهت مشكلة مع Hudson على Windows.

كلما قمت بتحديث هدسون أو مكون إضافي ، أحصل على خيار إعادة التشغيل عند عدم تشغيل أي وظائف.
إذا قمت بالنقر فوق هذا الزر معلق Hudson ولا يعيد تشغيله. لقد حاولت إعادة تشغيل خدمة Hudson ولكن هذا لا يساعد ، لذلك ينتهي الأمر بالحاجة إلى إعادة تشغيل الصندوق لإعادة Hudson إلى الإنترنت.

لقد قمت للتو بالتحديث إلى أحدث إصدار ، لكن لم تنقر على زر إعادة التشغيل وقد اختفت الآن.

هل هناك طريقة صحيحة لإعادة تشغيل Hudson على Windows؟

هتافات

توم

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

المحلول

لدي هذه المشكلة من حين لآخر أيضًا. لسبب ما ، لا يتم إيقاف خادم Hudson بالكامل ولا يمكنه استخدام الخادم الذي يبدأ. لإصلاح هذه المشكلة ، أقوم بتشغيل "NetStat -N -o". وبهذه الطريقة ، يمكنني معرفة معرف العملية الذي يحتفظ بالمنفذ وقتل هذا التطبيق من خلال TaskManager. الآن يمكنني إعادة تشغيل الخدمة ويظهر هدسون بشكل جيد.

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

بعد الانتهاء من جميع وظائفك ولا يعيد الخادم الخاص بك. فقط قم بزيارة صفحة إعادة التشغيل مرة أخرى http: // server: منفذ/إعادة التشغيل وحاول إعادة التشغيل مرة أخرى. إذا لم ينجح ذلك ، فوقف الخدمة وابدأها مرة أخرى.


تحديث:

منذ أن سئمت من تسجيل الدخول جسديًا إلى خادم Hudson/Jenkins ، أستخدم الآن الأوامر التالية لتشغيل القتل عن بُعد. تفترض هذه الأوامر أنك تقوم بتشغيل الخدمة مع مستخدم مخصص (على سبيل المثال Jenkinsuser). إذا كانت هناك عملية أخرى يتم تشغيلها بنفس بيانات الاعتماد من الخدمة وقد تبدأ Java.exe ، فأنت بحاجة إلى تشغيل NetStat الذي يجب تنفيذه محليًا على خادم Jenkins أو باستخدام Rexec (لم يكن هذا خيارًا بالنسبة لي).

:: get the pid of jenkins java.exe
tasklist /S %JENKINSSERVER% /FI "IMAGENAME eq java.exe" /FI "USERNAME eq %DOMAIN\USERNAME%"

:: terminate process use pid from previous command (instead of 1234)
taskkill /S %JENKINSSERVER% /F /T /PID 1234

:: stop the Jenkins service (just in case the service is hanging)
sc \\%JENKINSSERVER% stop Jenkins

:: start the Jenkins service again
sc \\%JENKINSSERVER% start Jenkins

إذا اضطررت إلى الكثير من الوقت ، فقد أقوم بإنشاء برنامج نصي منه.

نصائح أخرى

إذا كانت عقدة الرقيق تحتوي على slave.jar تستخدم كخدمة Windows ، يتم تعريف هذه الخدمة على أنها "تلقائية".
وهذا يعني أنه سيحاول الاتصال بالسيد بشكل دوري إذا تم قطع الاتصال.

يجب ألا تنقر على أي شيء على جانب الخادم (في تعريف العقدة) لإعادة تشغيل العقدة المذكورة: يجب أن تعود عبر الإنترنت تلقائيًا.

إذا قمت بتثبيت Jenkins على خادم Tomcat ، فإن أحد الحلول البديلة هو إعادة تشغيل خدمة Apache Tomcat الخاصة بك.

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