Comment redémarrer Jenkins manuellement?

816

Je viens de commencer à travailler avec Jenkins et j'ai rencontré un problème. Après avoir installé plusieurs plugins, il a déclaré qu'il devait être redémarré et est passé en mode "arrêt", mais ne redémarre jamais.

Comment faire un redémarrage manuel?

Kerry Jones
la source
34
Remarque: "Jenkins est en train de s'arrêter" ne s'arrête pas réellement, il informe simplement les différents utilisateurs qui pourraient vouloir construire quelque chose que Jenkins va être redémarré bientôt.
Khez
1
Quelque chose à noter que je n'ai pas remarqué que quelqu'un d'autre ait mentionné ... Si vous mettez Jenkins en mode d'arrêt, il ne s'arrête pas réellement, ce qui a été mentionné. Ce qui n'a pas été noté, c'est que cela empêche le démarrage de nouvelles versions. Si vous devez laisser une build se terminer avant de redémarrer, vous devez mettre Jenkins en mode d'arrêt, laisser votre build se terminer, puis faire votre "redémarrage" avec la méthode que vous choisissez ci-dessus.
TheRedSeth
Depuis la version 1.442 Jenkins ne nécessite pas d'être redémarré après l' installation de nouveaux plug-in (s), utilisez "Installer sans redémarrage" . Malheureusement, cette fonctionnalité ne fonctionnera pas pour la mise à jour ou la désinstallation.
luka5z

Réponses:

1942

Pour redémarrer Jenkins manuellement, vous pouvez utiliser l'une des commandes suivantes (en entrant leur URL dans un navigateur):

(jenkins_url)/safeRestart- Permet à tous les travaux en cours d'exécution de se terminer. Les nouveaux travaux resteront dans la file d'attente pour s'exécuter une fois le redémarrage terminé.

(jenkins_url)/restart - Force un redémarrage sans attendre la fin des builds.

Željko Filipin
la source
14
Pour safeRestart, voir stackoverflow.com/a/15555339/260122 java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080/ safe-restart (s'il est installé par rpm ou deb, sinon ajustez en conséquence).
clacke
13
Cela provoque un RestartNotSupportedExceptiondans Jenkins 1.532.1 avec IcedTea 2.3.9. sudo /etc/init.d/jenkins restarttravaillé pour moi cependant.
Matthias Braun
4
Sous Windows, utilisez le service Windows plutôt que la ligne de commande.
Mag
8
Existe-t-il des liens internes de Jenkins pour faire cela au lieu de remémorer les URL magiques?
rogerdpack
5
N'est-ce pas disponible dans l'interface graphique Web?
realtebo
182

Si vous avez installé en tant que rpm ou deb , service jenkins restartcela fonctionnera également.

Ben Mathews
la source
115

Sur Ubuntu ou Debian, lorsqu'il est installé via apt-get/ dpkg:

$ sudo /etc/init.d/jenkins restart
Usage: /etc/init.d/jenkins {start|stop|status|restart|force-reload}
Timo Tijhof
la source
1
https://support.cloudbees.com/hc/en-us/articles/216118748-How-to-Start-Stop-or-Restart-your-Instance- dit IMPORTANT: ne lancez pas les méthodes start | stop | restart manuellement comme $ sudo /etc/init.d/jenkins start | stop | restart car cela rend votre service peu fiable car il récupère l'environnement de l'utilisateur root par opposition à un environnement vierge propre et fiable qui est défini par les lanceurs init (service / systemctl ).
battey
96

Le plugin SafeRestart doit être mentionné. C'est assez utile ( redémarrer en toute sécurité ). Il ajoute un lien pour pouvoir redémarrer à partir du menu principal:

Entrez la description de l'image ici

Vitalii Elenhaupt
la source
J'utilise souvent cette fonctionnalité pour les installations de plugins.
imdibiji
Bizarre que ce plugin ne soit pas inclus par défaut.
fig
70

Les commandes ci-dessous ont fonctionné pour moi dans Red Hat Linux et devraient également fonctionner pour Ubuntu.

  • Pour connaître le statut de Jenkins:

    sudo service jenkins status
    
  • Pour démarrer le Jenkins:

    sudo service jenkins start
    
  • Pour arrêter le Jenkins:

    sudo service jenkins stop
    
  • Pour redémarrer Jenkins:

    sudo service jenkins restart
    

Démo à l'invite de commande:

[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]#

Les gens qui utilisent des fenêtres

Ouvrez la console / ligne de commande -> Accédez à votre répertoire d'installation Jenkins. Exécutez respectivement les commandes suivantes:

To stop:
jenkins.exe stop

To start:
jenkins.exe start

To restart:
jenkins.exe restart

Varun
la source
37

Sous Windows, si vous avez installé comme un service, rendez - vous aux services ( DémarrerExécuter : services.msc), trouver Jenkins, clic droit → Redémarrer .

Si cela n'aide pas (l'interface utilisateur ne répond pas), ouvrez le Gestionnaire des tâches Windows → Processus , arrêtez le java.exeprocessus et redémarrez le service à nouveau.

Constantine
la source
7
essayer d'atteindre / safeRestart sur Windows entraînera: javax.servlet.ServletException: hudson.lifecycle.RestartNotSupportedException: le cycle de vie de Windows par défaut ne prend pas en charge le redémarrage.
x29a
1
Lorsque /safeRestartn'est pas disponible, utilisez /safeExitavant de redémarrer manuellement.
Jesse Glick
19

Si vous exécutez Jenkins sur Mac OS X, vous pouvez arrêter manuellement le service en exécutant cette commande:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
Jalal
la source
1
vous pouvez ensuite recommencer à utiliserload
kraftydevil
18

Cela peut également être fait à l'aide de la CLI Jenkins :

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

Le jenkins-cli.jarfichier ainsi qu'une liste complète des commandes sont disponibles sur http://[jenkins-server]/cli.

Ciaran
la source
12

Si vous voulez simplement recharger le fichier de configuration, on peut faire

    <jenkins_url>/reload

Ceci est plus rapide si vous avez apporté quelques petites modifications dans le fichier de configuration, comme config.xmldirectement dans le système de fichiers ou fait des copies du travail via le système de fichiers (pas via le navigateur).

infoclogged
la source
10

Cela dépend de la façon dont Jenkins a été démarré.

  • En tant que service: sudo service jenkins restart, sudo /etc/init.d/jenkins restart, etc.

  • En tant qu'application Web dans une installation Tomcat: redémarrez votre Tomcat ou redémarrez simplement l'application dans Tomcat. Allez à http://<tomcat-server>:8080/manager/listou après l'authentification, appuyez sur http://<tomcat-server>:8080/manager/stop?path=/myapp+ http://<tomcat-server>:8080/manager/start?path=/myapp.

  • Lancé avec just java -jar: kill it ( kill -9 <pid>), et relancez-le.

  • Lancé avec java -jar, mais par un superviseur:supervisorctl restart jenkins

François SAMIN
la source
Il suffit de choisir votre cas d'utilisation, belle réponse !!
user43968
8

Sous Windows

Accédez à l'installation Jenkins, ouvrez la cmd et exécutez:

  • Arrêter:

    jenkins.exe stop
    
  • Commencer:

    jenkins.exe start
    
  • Recommencer:

    jenkins.exe restart
    
Monis Majeed
la source
8

Parfois, il y aura des processus Jenkins périmés, alors ps -ef | grep jenkinstuez-les tous. Redémarrez comme décrit dans les réponses précédentes, et ce sera propre.

ps -ef | grep jenkins
sudo kill -kill <pid>
tranchant
la source
7

Si vous exécutez FreeBSD:

/usr/local/etc/rc.d/jenkins restart
Eric Cope
la source
5

Si vous pouvez y accéder dans un navigateur Web, ajoutez simplement /restart, par exemple localhost:8080/restart,.

Si vous l'exécutez en tant que service, connectez-vous à votre serveur et exécutez la commande:

sudo service jenkins stop/start
Rizwan Javid
la source
4

Pour redémarrer Jenkins manuellement à l'aide du navigateur:

Entrez votre www.jenkins-ip/restart (par exemple, http://localhost:8080/restart) dans le navigateur. Jenkins redémarrera et chargera automatiquement la page de connexion après le redémarrage.

Vaibhav Walke
la source
3

JenkinURL / restart fera le redémarrage.


/usr/local/etc/rc.d/jenkins restart
Sebin
la source
Mais ce /usr/local/etc/rc.d/jenkinn'est pas une URL (?). Peux-tu élaborer?
Peter Mortensen
3

Pour Mac

Arrête Jenkins

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

Démarrer Jenkins

sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
Sazzad Hissain Khan
la source
3

Depuis le terminal:

sudo service jenkins restart

Ou jenkinsurl/restart.

Sidhartha
la source
3

Plusieurs personnes ont mentionné la nécessité de redémarrer le conteneur de servlet si Jenkins ne fonctionne pas de manière autonome. Mais Tomcat (ou ce qui est utilisé) n'a pas besoin d'être redémarré. Tomcat peut forcer un redémarrage du contexte Jenkins si votre redémarrage Jenkins est bloqué.

Mais pour répondre à un autre commentaire, lorsque vous mettez Jenkins en mode "arrêt", il ne s'arrêtera pas réellement. Il empêche les nouveaux travaux de s'exécuter et place une bannière rouge géante sur les pages système afin que tout le monde sache que l'administrateur souhaite le supprimer éventuellement. Il existe des plugins pour déclencher un redémarrage du conteneur de servlets pour ce contexte une fois toutes les générations terminées.

L'alternative consiste à attendre la fin du dernier travail en cours, puis à basculer manuellement Jenkins à partir du conteneur (ou via les options de ligne de commande que d'autres ont mentionnées pour l'installation autonome de Jenkins).

JasonRobinson
la source
3

S'il est déployé en tant que fichier war, redémarrez le serveur d'applications, par exemple Tomcat.

tranchant
la source
2

Pour CentOS :

sudo systemctl restart jenkins

sudo systemctl status Jenkins

Jenkins sera actif et opérationnel sur certains PID.

Aamir M Meman
la source
2

S'il se trouve dans un conteneur Docker, vous pouvez simplement redémarrer votre conteneur. Supposons que le nom du conteneur soit jenkins, vous pouvez donc faire:

docker restart jenkins

Ou

docker stop jenkins
docker start jenkins
Youssouf Maiga
la source
Important! Sur docker - Les données Jenkins doivent être persistantes (vous risquez de perdre des tâches en cours d'exécution, des ressources, des builds, des données, etc.). la solution serait: sudo docker ps -> sudo docker stop <dockerImageID> -> sudo docker start <dockerImageID>
avivamg
2

Vous disposez de nombreuses options pour redémarrer Jenkins manuellement, mais principalement deux (URL ou ligne de commande):

  • Alternative 1: Utilisation de l'URL d'installation de Jenkins:

    Jenkins_URL/restart.

    Exemple: http://jenkinsserver.com/restart

    Ce type de redémarrage force un redémarrage sans attendre la fin des builds.

    Si vous devez attendre la fin des travaux, vous pouvez utiliser:

    Jenkins_URL/safeRestart.

    Exemple: http://jenkinsserver.com/safeRestart

  • Alternative 2: en utilisant la ligne de commande, en fonction de votre installation Jenkins.

    • Si vous installez à l'aide du package rpm ou deb ou si vous disposez de l'installation Jenkins dans Red Hat , Ubuntu ou Debian , vous pouvez utiliser ces commandes:

    • sudo service jenkins restart

      Cela redémarre Jenkins en une seule étape.

    • sudo service jenkins stopet sudo service jenkins start,

      Ce redémarrage Jenkins en deux étapes.

      Remarque: si vous devez vérifier l'état de Jenkins, vous pouvez utiliser cette commande: sudo service jenkins status

    • Si vous utilisez CentOS , vous pouvez utiliser cette commande:

      sudo systemctl restart jenkins
      

      Remarque: si vous devez vérifier l'état de Jenkins, vous pouvez utiliser cette commande: sudo systemctl status Jenkins

Javier C.
la source
1

les fenêtres

Exécutez services.mscet redémarrez:

Entrez la description de l'image ici

Tiago Medici
la source
1

Essayez ce qui suit. Ça a marché pour moi.

sudo service jenkins status  

Il vous donnera le PID de Jenkins. Maintenant, faites un

kill -15 [PID]

sudo service jenkins start
Avinash Agrawal
la source
3
Vous vous demandez pourquoi vous ne faites pas que "(sudo) service jenkins restart"?
nembleton
Oui, tout à fait correct, mais j'ai rencontré un problème, parfois dans lequel cela ne fonctionnait pas pour moi.
Avinash Agrawal
1

Si rien ne fonctionne, trouvez le processus Jenkins en

ps aux | grep java

puis tuez-le:

kill -9 [PID]

sudo service jenkins start

Edit: Recherchez le processus java qui est lié à jenkins

Neil
la source
4
assez dangereux de simplement rechercher des processus java, ne pensez-vous pas? On devrait chercher quelque chose d'imo plus spécifique à Jenkins.
Tim Büthe
0

Si vous ne disposez d'aucune autorisation ou accès à la ligne de commande directement, vous pouvez par exemple effectuer l'une des opérations suivantes:

  1. Créez un travail avec une étape shell / batch qui déclenchera un redémarrage à partir du dossier d'installation Jenkins
  2. Installez / mettez à jour certains plugins en cochant "redémarrer après l'installation" (au moins cela fonctionne dans les anciennes versions)

Les deux ci-dessus sont des hacks, mais je les ai activement utilisés dans un environnement très restreint où personne ne voulait que je redémarre Jenkins, hein.

TEH EMPRAH
la source
0

Si vous exécutez Jenkins en tant que serveur sur une machine Windows, ouvrez le Gestionnaire des tâches et basculez vers l'onglet service. Recherchez Jenkins et redémarrez-le.

Prem Choudhary
la source