servicio - Reiniciar Hudson en Windows
restart jenkins ubuntu (3)
He estado teniendo un problema con Hudson en Windows.
Cada vez que actualizo Hudson o un complemento tengo la opción de reiniciar cuando no hay trabajos en ejecución.
Si hago clic en este botón, Hudson se cuelga y no se reinicia. Intenté reiniciar el servicio Hudson, pero esto no ayuda, así que tengo que reiniciar la caja para poner a Hudson nuevamente en línea.
Acabo de actualizar a la versión más reciente, pero no hice clic en el botón de reinicio y ahora se ha desvanecido.
¿Hay una forma correcta de reiniciar Hudson en Windows?
Aclamaciones
Tom
Si el nodo esclavo utiliza el slave.jar
como un servicio de Windows, ese servicio se define como "automático".
Significa que intentará contactar al maestro periódicamente si la conexión se ha cortado.
No debe hacer clic en nada del lado del servidor (en la definición del nodo) para reiniciar dicho nodo: debe volver a conectarse automáticamente.
También tengo este problema de vez en cuando. Por alguna razón, el servidor Hudson no se cierra por completo y el servidor que se inicia no puede usar el puerto. Para solucionar ese problema, ejecuto `netstat -n -o ''. De esta forma puedo averiguar el ID del proceso que contiene el puerto y matar esa aplicación a través del administrador de tareas. Ahora puedo reiniciar el servicio y Hudson sale bien.
Durante las últimas semanas tuve un problema similar. La descripción dice que reinicia la aplicación cuando no se están ejecutando procesos. Me perdí de un trabajo que estaba en espera en la cola de compilación y debido a una configuración defectuosa que nunca se compila realmente, lo que impide que Hudson se reinicie.
Después de que todos sus trabajos hayan terminado y su servidor no se reinicie. Simplemente vuelva a visitar la página de reinicio http: // server: port / restart e intente reiniciar nuevamente. Si eso no funciona, detenga el servicio y reinícielo.
ACTUALIZAR:
Como me cansé de iniciar sesión físicamente en el servidor de Hudson / Jenkins, ahora uso los siguientes comandos para ejecutar el kill de forma remota. Estos comandos suponen que ejecuta el servicio con un usuario dedicado (por ejemplo, JenkinsUser). Si otro proceso se ejecuta con las mismas credenciales que el servicio y puede iniciar java.exe, debe ejecutar netstat, que debe ejecutarse localmente en el servidor de Jenkins o utilizando rexec (esta no era una opción para mí).
:: 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
Si tengo mucho tiempo, podría crear un script a partir de él.
Si instaló Jenkins en un servidor TomCat, una solución alternativa es simplemente reiniciar su servicio Apache TomCat.