2010-09-21 17 views
17

Ich habe ein Problem mit Hudson auf Windows.Neustart Hudson auf Windows

Immer wenn ich Hudson oder ein Plugin aktualisiere, bekomme ich die Option neu zu starten, wenn keine Jobs laufen.
Wenn ich auf diese Schaltfläche klicke, bleibt Hudson hängen und startet nicht neu. Ich habe versucht, den Hudson-Dienst neu zu starten, aber das hilft nicht, also am Ende muss die Box neu starten, um Hudson wieder online zu bringen.

Ich habe gerade auf die neueste Version aktualisiert, aber nicht auf den Neustart-Button und es ist jetzt verschwunden.

Gibt es eine korrekte Möglichkeit, Hudson unter Windows neu zu starten?

Prost

Tom

Antwort

13

Ich habe ein Problem auch hin und wieder. Aus irgendeinem Grund wird der Hudson-Server nicht vollständig heruntergefahren und der Server, der gestartet wird, kann den Port nicht verwenden. Um dieses Problem zu beheben, starte ich `netstat -n -o '. Auf diese Weise kann ich die Prozess-ID herausfinden, die den Port enthält, und diese App über den Taskmanager beenden. Jetzt kann ich den Dienst neu starten und Hudson kommt in Ordnung.

In den letzten Wochen hatte ich ein ähnliches Problem. Die Beschreibung sagt, dass es die App neu startet, wenn keine Prozesse laufen. Ich habe einen Job verpasst, der in der Build-Warteschlange gehalten wurde und aufgrund einer fehlerhaften Konfiguration nie wirklich erstellt wurde, was Hudson daran hindert, neu zu starten.

Nachdem alle Ihre Jobs abgeschlossen sind und Ihr Server nicht neu gestartet wird. Besuchen Sie einfach die Neustart-Seite erneut http://server:port/restart und versuchen Sie erneut zu starten. Wenn das nicht funktioniert, stoppe den Dienst und starte ihn erneut.


UPDATE:

Da ich müde von physisch in den Hudson/Jenkins-Server anmeldet, verwende ich jetzt Befehle folgenden die remote ausgeführt töten. Diese Befehle setzen voraus, dass Sie den Dienst mit einem dedizierten Benutzer (z. B. JenkinsUser) ausführen. Wenn ein anderer Prozess mit den gleichen Anmeldeinformationen wie der Dienst ausgeführt wird und möglicherweise java.exe startet, müssen Sie den netstat ausführen, der lokal auf dem Jenkins-Server ausgeführt werden muss, oder indem Sie rexec verwenden (dies war für mich keine Option).

:: 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 

Wenn ich zu viel Zeit habe, könnte ich ein Skript daraus erstellen.

+0

Danke für Ihren Vorschlag Peter!Ich werde das Update am Ende des Tages laufen lassen und ich werde es versuchen, wenn es hängt. –

+1

Erstaunlicherweise, seit ich diese Frage gestellt habe, habe ich Hudson und seine Plugins aktualisiert und hatte kein Problem mit dem Neustart. Ich kann die Logik in dem, was Sie sagen, Peter sehen, also wird Ihre Antwort als die akzeptierte markieren. Danke für Ihre Hilfe! –

+1

/Neustart funktionierte nicht für mich. Ich habe einen Knopf, um neu zu starten und nachdem ich darauf geklickt habe, habe ich den folgenden Fehler bekommen. udson.lifecycle.RestartNotSupportedException: Der Windows-Standardlebenszyklus unterstützt keinen Neustart. \t bei hudson.lifecycle.Lifecycle $ 1.verifyRestartable (Lifecycle.java:83) Ich habe Hudson nicht als Windows-Dienst installiert, da dies keine Option unter Manage Hudson war. Ich verwende Version 1.3.98 auf meinem lokalen Windows 7-Computer. – CACuzcatlan

1

Wenn der Slave-Knoten die slave.jar als Windows-Dienst verwendet hat, wird dieser Service als "Automatik" definiert.
Dies bedeutet, dass versucht wird, den Master regelmäßig zu kontaktieren, wenn die Verbindung unterbrochen wurde.

Sie sollten auf nichts auf der Serverseite (in der Node-Definition) klicken, um den Knoten neu zu starten: Er sollte automatisch wieder online sein.

+0

Danke für Ihre Antwort VonC. Ich betreibe keine Sklaven. Nur Hudson als Meister. Hast du irgendwelche Ideen, warum es hängt, wenn ich auf den Neustart-Button klicke? –

+1

@Toggo: oh ok. Peters Antwort könnte dann relevanter sein. – VonC

1

Wenn Sie Jenkins auf einem TomCat-Server installiert haben, können Sie Ihren Apache TomCat-Dienst einfach neu starten.

+1

Es hat mir geholfen :) – amalBit