Jak ręcznie zrestartować Jenkins?


816

Właśnie zacząłem współpracować z Jenkinsem i napotkałem problem. Po zainstalowaniu kilku wtyczek powiedział, że należy go zrestartować i przeszedł w tryb „zamykania”, ale nigdy nie uruchamia się ponownie.

Jak wykonać ręczny restart?


34
Uwaga: „Jenkins się wyłącza” tak naprawdę nie wyłącza się, po prostu powiadamia różnych użytkowników, którzy mogą chcieć zbudować coś, co Jenkins wkrótce uruchomi ponownie.
Khez

1
Coś, co należy zauważyć, że nie zauważyłem, że ktoś o tym wspominał ... Jeśli przełączysz Jenkinsa w tryb zamykania, tak naprawdę nie zostanie zamknięty, o czym wspomniano. Nie zauważono, że powstrzymuje to uruchamianie nowych wersji. Jeśli musisz pozwolić kompilacji na ukończenie przed ponownym uruchomieniem, powinieneś przełączyć Jenkinsa w tryb zamykania, pozwól na zakończenie kompilacji, a następnie wykonaj „restart” przy użyciu dowolnej metody wybranej powyżej.
TheRedSeth

Ponieważ wersja 1.442 Jenkins nie wymaga ponownego uruchomienia po zainstalowaniu nowych wtyczek, użyj opcji „Zainstaluj bez ponownego uruchomienia” . Niestety ta funkcja nie będzie działać w przypadku aktualizacji lub odinstalowywania.
luka5z

Odpowiedzi:


1942

Aby ręcznie zrestartować Jenkins, możesz użyć jednego z następujących poleceń (wpisując ich adres URL w przeglądarce):

(jenkins_url)/safeRestart- Pozwala na zakończenie wszystkich uruchomionych zadań. Nowe zadania pozostaną w kolejce do uruchomienia po zakończeniu ponownego uruchomienia.

(jenkins_url)/restart - Wymusza restart bez oczekiwania na zakończenie kompilacji.


14
Aby dowiedzieć się więcej o SafeRestart, zobacz stackoverflow.com/a/15555339/260122 java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080/ safe-restart (jeśli jest zainstalowany przez rpm lub deb, w przeciwnym razie dostosuj odpowiednio).
clacke

13
To powoduje a RestartNotSupportedExceptionw Jenkins 1.532.1 z IcedTea 2.3.9. sudo /etc/init.d/jenkins restartpracował dla mnie.
Matthias Braun

4
W systemie Windows użyj usługi Windows zamiast wiersza polecenia.
Mag

8
Czy istnieją jakieś wewnętrzne linki od Jenkins, aby to zrobić zamiast zapamiętywania magicznego adresu URL?
rogerdpack,

5
Czy to nie jest dostępne w GUI sieci?
realtebo

182

Jeśli zainstalowałeś jako rpm lub deb , to service jenkins restartrównież będzie działał.


115

W systemie Ubuntu lub Debian, jeśli jest instalowany przez apt-get/ dpkg:

$ sudo /etc/init.d/jenkins restart
Usage: /etc/init.d/jenkins {start|stop|status|restart|force-reload}

1
https://support.cloudbees.com/hc/en-us/articles/216118748-How-to-Start-Stop-or-Restart-your-Instance- mówi WAŻNE: Nie uruchamiaj metod start | stop | uruchom ponownie ręcznie, ponieważ $ sudo /etc/init.d/jenkins start | stop | restart, ponieważ powoduje, że usługa nie jest niezawodna, ponieważ odbiera środowisko od użytkownika root, w przeciwieństwie do czystego, niezawodnego, pustego środowiska ustawionego przez program uruchamiający init (service / systemctl ).
battey,


70

Poniższe polecenia działały dla mnie w systemie Red Hat Linux i powinny działać również w systemie Ubuntu.

  • Aby poznać status Jenkins:

    sudo service jenkins status
    
  • Aby uruchomić Jenkins:

    sudo service jenkins start
    
  • Aby zatrzymać Jenkinsa:

    sudo service jenkins stop
    
  • Aby ponownie uruchomić Jenkins:

    sudo service jenkins restart
    

Demo w wierszu polecenia:

[root@varunHome]# sudo service jenkins status
jenkins (pid  7468) is running...

[root@varunHome]# sudo service jenkins stop
Shutting down Jenkins               [  OK  ]

[root@varunHome]# sudo service jenkins start
Starting Jenkins                    [  OK  ]

[root@varunHome]# sudo service jenkins restart
Shutting down Jenkins               [  OK  ]

Starting Jenkins                    [  OK  ]
[root@varunHome]#

Ludzie używający systemu Windows

Otwórz konsolę / wiersz poleceń -> Przejdź do katalogu instalacyjnego Jenkins. Wykonaj odpowiednio następujące polecenia:

To stop:
jenkins.exe stop

To start:
jenkins.exe start

To restart:
jenkins.exe restart


37

W systemie Windows, jeśli zainstalowany jako usługa, przejdź do Usługi ( startRun : services.msc), znaleźć Jenkinsa, kliknij prawym przyciskiem → Restart .

Jeśli to nie pomoże (interfejs użytkownika nie odpowiada), otwórz Menedżera zadań systemu Windows → Procesy , zabij java.exeproces i ponownie uruchom usługę.


7
próba osiągnięcia / safeRestart w systemie Windows prowadzi do: javax.servlet.ServletException: hudson.lifecycle.RestartNotSupportedException: Domyślny cykl życia systemu Windows nie obsługuje ponownego uruchomienia.
x29a

1
Gdy /safeRestartjest niedostępny, użyj /safeExitprzed ręcznym ponownym uruchomieniem.
Jesse Glick,

19

Jeśli używasz Jenkins na Mac OS X, możesz ręcznie zatrzymać usługę, wykonując następujące polecenie:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

1
możesz ponownie uruchomić za pomocąload
kraftydevil

17

Można to również zrobić za pomocą interfejsu Jenkins CLI :

java -jar jenkins-cli.jar -s http://[jenkins-server]/ restart

jenkins-cli.jarPlik wraz z pełną listą poleceń dostępne są na http://[jenkins-server]/cli.


12

Jeśli chcesz po prostu ponownie załadować plik konfiguracyjny, możesz to zrobić

    <jenkins_url>/reload

Jest to szybsze, jeśli dokonałeś niewielkiej zmiany w pliku konfiguracyjnym, na przykład config.xmlbezpośrednio w systemie plików lub wykonałeś kopie zadania przez system plików (nie przez przeglądarkę).


10

To zależy od tego, jak została uruchomiona Jenkins.

  • Jako usługa: sudo service jenkins restart, sudo /etc/init.d/jenkins restart, itd.

  • Jako aplikacja internetowa w instalacji Tomcat: uruchom ponownie Tomcat lub po prostu uruchom ponownie aplikację w Tomcat. Przejdź do http://<tomcat-server>:8080/manager/listlub po uwierzytelnieniu naciśnij http://<tomcat-server>:8080/manager/stop?path=/myapp+ http://<tomcat-server>:8080/manager/start?path=/myapp.

  • Uruchomiony przez just java -jar: kill it ( kill -9 <pid>) i uruchom go ponownie.

  • Uruchomiony z java -jar, ale od przełożonego:supervisorctl restart jenkins


Wystarczy wybrać przypadek użycia miłej odpowiedzi !!
user43968,


8

W systemie Windows

Przejdź do instalacji Jenkins, otwórz cmd i uruchom:

  • Zatrzymać:

    jenkins.exe stop
    
  • Zacząć:

    jenkins.exe start
    
  • Zrestartować:

    jenkins.exe restart
    

8

Czasami będą jakieś przestarzałe procesy Jenkinsa, więc ps -ef | grep jenkinszabij je wszystkie. Uruchom ponownie, jak opisano w poprzednich odpowiedziach, a wszystko będzie czyste.

ps -ef | grep jenkins
sudo kill -kill <pid>


5

Jeśli możesz uzyskać do niego dostęp w przeglądarce internetowej, po prostu dodaj /restartna przykład localhost:8080/restart.

Jeśli uruchamiasz go jako usługę, zaloguj się na serwerze i wykonaj polecenie:

sudo service jenkins stop/start

4

Aby ręcznie zrestartować Jenkins ręcznie za pomocą przeglądarki:

Wpisz swój www.jenkins-ip/restart (na przykład http://localhost:8080/restart) w przeglądarce. Jenkins uruchomi się ponownie i załaduje stronę logowania automatycznie po ponownym uruchomieniu.


3

JenkinURL / restart wykona restart.


/usr/local/etc/rc.d/jenkins restart

Ale /usr/local/etc/rc.d/jenkinto nie jest adres URL (?). Czy możesz rozwinąć?
Peter Mortensen

3

Dla Maca

Przestań Jenkins

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

Uruchom Jenkins

sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist


3

Kilka osób wspomniało o potrzebie ponownego uruchomienia kontenera serwletu, jeśli Jenkins nie działa jako samodzielny. Ale Tomcat (lub to, co jest używane) nie musi być ponownie uruchamiane. Tomcat może wymusić ponowne uruchomienie kontekstu Jenkins, jeśli restart Jenkins jest zawieszony.

Ale żeby odpowiedzieć na inny komentarz, kiedy przełączysz Jenkinsa w tryb „zamykania”, tak naprawdę nie zostanie zamknięty. Zatrzymuje wykonywanie nowych zadań i umieszcza gigantyczny czerwony sztandar na stronach systemowych, aby wszyscy wiedzieli, że administrator chce go w końcu usunąć. Istnieją wtyczki, które wyzwalają restart kontenera serwletu dla tego kontekstu po zakończeniu wszystkich kompilacji.

Alternatywą jest poczekanie, aż zakończy się ostatnie uruchomione zadanie, a następnie ręczne wykopanie Jenkinsa z kontenera (lub za pomocą opcji wiersza poleceń, które inni wspominali o samodzielnej instalacji Jenkins).


3

Jeśli zostanie wdrożony jako plik wojenny, zrestartuj serwer aplikacji, na przykład Tomcat.


2

W przypadku CentOS :

sudo systemctl restart jenkins

sudo systemctl status Jenkins

Jenkins będzie aktywny i działał na niektórych PID.


2

Jeśli znajduje się w kontenerze Docker, możesz po prostu ponownie uruchomić kontener. Załóżmy, że nazwa kontenera to jenkins, więc możesz:

docker restart jenkins

Lub

docker stop jenkins
docker start jenkins

Ważny! W oknie dokowanym - dane Jenkins muszą być trwałe (możesz stracić uruchomione zadania, zasoby, kompilacje, dane itp.). Dlatego bądź ostrożny, lepiej NIE używaj „restartu”, a NIE używaj stop i start na obrazie dokera. rozwiązaniem byłoby: sudo docker ps -> sudo docker stop <dockerImageID> -> sudo docker start <dockerImageID>
avivamg

2

Masz wiele opcji ręcznego restartowania Jenkinsa, ale głównie dwie (adres URL lub wiersz poleceń):

  • Alternatywa 1: Korzystanie z instalacyjnego adresu URL Jenkinsa:

    Jenkins_URL/restart.

    Przykład: http://jenkinsserver.com/restart

    Ten typ restartu wymusza restart bez oczekiwania na zakończenie kompilacji.

    Jeśli musisz poczekać na zakończenie zadań, możesz użyć:

    Jenkins_URL/safeRestart.

    Przykład: http://jenkinsserver.com/safeRestart

  • Alternatywa 2: Korzystanie z wiersza polecenia, w zależności od instalacji Jenkins.

    • Jeśli instalujesz przy użyciu pakietu rpm lub deb lub masz instalację Jenkins w Red Hat , Ubuntu lub Debian , możesz użyć tych poleceń:

    • sudo service jenkins restart

      Ponownie uruchom Jenkins w jednym kroku.

    • sudo service jenkins stopa sudo service jenkins start,

      To zrestartuje Jenkinsa na dwa kroki.

      Uwaga: jeśli chcesz sprawdzić status Jenkinsa, możesz użyć tego polecenia: sudo service jenkins status

    • Jeśli używasz CentOS , możesz użyć tego polecenia:

      sudo systemctl restart jenkins
      

      Uwaga: jeśli chcesz sprawdzić status Jenkinsa, możesz użyć tego polecenia: sudo systemctl status Jenkins




1

Spróbuj poniżej. To zadziałało dla mnie.

sudo service jenkins status  

Otrzymasz PID Jenkinsa. Teraz zrób

kill -15 [PID]

sudo service jenkins start

3
Zastanawiasz się, dlaczego nie wykonujesz tylko „(sudo) usługi Jenkins restart”?
nembleton

Tak, absolutnie poprawne, ale napotkałem problem, w którym czasami nie działało to dla mnie.
Avinash Agrawal

1

Jeśli nic nie działa, znajdź proces Jenkinsa

ps aux | grep java

a następnie zabij to:

kill -9 [PID]

sudo service jenkins start

Edycja: poszukaj procesu Java, który jest powiązany z Jenkins


4
dość niebezpieczne jest po prostu wyszukiwanie procesów Java, nie sądzisz? Należy szukać czegoś bardziej konkretnego imo Jenkinsa.
Tim Büthe

0

Jeśli nie masz uprawnień ani bezpośredniego dostępu do wiersza poleceń, możesz np. Wykonać jedną z następujących czynności:

  1. Utwórz zadanie z krokiem powłoki / partii, który uruchomi ponowne uruchomienie z folderu instalacyjnego Jenkins
  2. Zainstaluj / zaktualizuj niektóre wtyczki, zaznaczając „uruchom ponownie po instalacji” (przynajmniej działa to w starszych wersjach)

Oba powyższe to hacki, ale aktywnie korzystałem z nich w bardzo ograniczonym środowisku, w którym nikt nie chciał, żebym ponownie uruchomił Jenkinsa, huh.


0

Jeśli używasz Jenkinsa jako serwera na komputerze z systemem Windows, otwórz Menedżera zadań i przejdź do karty usługi. Wyszukaj Jenkinsa i uruchom go ponownie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.