Sous OS X 10.9, Jenkins CI était automatiquement démarré par launchd. Après la mise à jour vers 10.10, il n'est plus démarré.
Jenkins a été installé à l'aide du programme d'installation OS X de jenkins-ci.org. J'utilisais la v1.584. Après que ce problème soit apparu, j'ai réinstallé en utilisant v1.585 en vain.
Il n'y a aucune sortie dans le fichier journal spécifié dans org.jenkins-ci.plist. Syslog a plusieurs messages indiquant que le service org.jenkins-ci "n'a pas pu initialiser: 14A389: xpcproxy + 14045 [1344] [1016C726-9ACF-3A24-9C51-A279F5C6B167]: 0xd".
Qu'est-ce qui a changé à Yosemite qui a brisé les jenkins?
Le "0xd" à la fin du message du journal est-il un code d'erreur?
J'ai essayé de charger et de démarrer manuellement via launchctl. Aucune erreur n'a été générée sur la console, mais jenkins n'est toujours pas en cours d'exécution.
Le problème n'est pas propre à Jenkins. J'ai un autre élément launchd qui échoue également depuis la mise à jour vers 10.10: l'antivirus TrendMicro.
Voici la réponse définitive.
Assurez-vous d'avoir installé Java. Le programme d'installation 10.10, du moins dans mon cas, a supprimé Apple Java 6. L'installé Java = doit satisfaire le /usr/bin/Java*
liens. Ceux-ci indiquent /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands
. Lors de l'installation d'Oracle Java vous avez besoin du JDK et non du JRE pour répondre à cette exigence.
chown jenkins /var/log/jenkins/jenkins.log
Assure-toi /var/log/jenkins
appartient à jenkins et peut être recherché par n'importe qui (mode 755). Il sera probablement déjà dans cet état.
Modifiez le fichier /etc/newsyslog.d/jenkins.conf
, en changeant
/var/log/jenkins/jenkins.log 644 3 * $D0 J
à
/var/log/jenkins/jenkins.log jenkins:jenkins 644 3 * $D0 J
Cela garantit que les nouveaux fichiers journaux créés pendant la rotation journalière des journaux appartiennent à jenkins. Si vous ne le faites pas, vous devrez répéter l'étape 2 tous les jours.
L'étape 4 de la réponse @kjones est probablement inutile car launchd
tente de démarrer jenkins toutes les 10 secondes.
Le "0xd" à la fin du message de journal que j'ai publié est en effet le code d'erreur: Autorisation refusée.
Qu'est-ce qui a changé dans launchd
? /var/log/jenkins/jenkins.log
est spécifié comme Standard{Error,Out}Path
dans org.jenkins-ci.plist
. Ma théorie est qu'avant le lancement de Yosemite, le fichier a été ouvert et configuré STDOUT & STDERR avant de changer le propriétaire du processus en "jenkins" et d'exécuter jenkins-runner.sh. Dans Yosemite, il semble que launchd n'ouvre le fichier qu'après avoir changé la propriété du processus, d'où la "permission refusée" lorsque le fichier appartient à root.
Voici les étapes que j'ai dû prendre:
Ajouter des autorisations d'exécution à org.jenkins-ci.plist
Sudo chmod + x /Library/LaunchDaemons/org.jenkins-ci.plist
Définissez jenkins comme propriétaire de/var/log/jenkins
Sudo chown jenkins/var/log/jenkins
Démarrer Jenkins
launchctl start /Library/LaunchDaemons/org.jenkins-ci.plist
Cela a résolu le problème de mon côté:
1) Obtention de la dernière mise à jour Java pour Java 8 de https://www.Java.com/en/download/help/mac_10_10 .xml
2) Sudo chown jenkins /var/log/jenkins/jenkins.log
3) Sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist