2010-09-21 15 views
17

He estado teniendo un problema con Hudson en Windows.Reiniciar 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 manera correcta de reiniciar Hudson en Windows?

Saludos

Tom

Respuesta

13

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 finalizado y su servidor no se reinicie. Simplemente visite nuevamente la página de reinicio http://server:port/restart y trate de reiniciar nuevamente. Si eso no funciona, detenga el servicio y reinícielo.


ACTUALIZACIÓN:

Desde Me cansé de registro físicamente en el servidor Hudson/Jenkins, que ahora usan los siguientes comandos para ejecutar la matan de forma remota. Estos comandos presuponen 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 una secuencia de comandos de ella.

+0

Gracias por su sugerencia Peter!Voy a ejecutar la actualización al final del día y lo intentaré si se cuelga. –

+1

Sorprendentemente, desde que hice esta pregunta, he actualizado Hudson y sus complementos, y no tuve un problema con el reinicio. Puedo ver la lógica en lo que dices Peter, por lo que marcaré tu respuesta como la aceptada. ¡Gracias por tu ayuda! –

+1

/restart no funcionó para mí. Obtuve un botón para reiniciar y una vez que hice clic en él recibí el siguiente error. udson.lifecycle.RestartNotSupportedException: el ciclo de vida predeterminado de Windows no admite el reinicio. \t en hudson.lifecycle.Lifecycle $ 1.verifyRestartable (Lifecycle.java:83) No instalé Hudson como un servicio de Windows ya que no era una opción en Manage Hudson. Estoy ejecutando la versión 1.3.98 en mi máquina local de Windows 7. – CACuzcatlan

1

Si el nodo esclavo tiene la slave.jar utilizado como un servicio de Windows, que el servicio se define como "automática".
Significa que intentará contactar al maestro periódicamente si la conexión ha sido cortada.

No debe hacer clic en nada en el lado del servidor (en la definición del nodo) para reiniciar dicho nodo: debe volver a conectarse automáticamente.

+0

Gracias por su respuesta VonC. En realidad no estoy ejecutando ningún esclavo. Justo como un maestro. Entonces, ¿tienes alguna idea de por qué se bloquea cuando hago clic en el botón de reinicio? –

+1

@Toggo: oh ok. La respuesta de Peter podría ser más relevante entonces. – VonC

1

Si ha instalado Jenkins en un servidor TomCat, una solución alternativa es simplemente reiniciar su servicio Apache TomCat.

+1

Me ayudó :) – amalBit

Cuestiones relacionadas