Подтвердить что ты не робот

Launchd не запускает сервер Jenkins на OS X Yosemite

В OS X 10.9 Jenkins CI запускался автоматически с помощью запуска. После обновления до 10.10 он больше не запускается.

Дженкинс был установлен с помощью установщика OS X с сайта jenkins-ci.org. Я бежал v1.584. После появления этой проблемы я переустановил с помощью v1.585 безрезультатно.

В файле журнала не указан вывод, указанный в org.jenkins-ci.plist. В Syslog есть несколько сообщений, указывающих, что служба org.jenkins-ci не может инициализировать: 14A389: xpcproxy + 14045 [1344] [1016C726-9ACF-3A24-9C51-A279F5C6B167]: 0xd ".

Что изменилось в Йосемите, которое сломало дженкинсов?

Является ли "0xd" в конце сообщения журнала кодом ошибки?

Я попробовал ручную загрузку и запуск через launchctl. Ошибок не было выведено на консоль, но jenkins все еще не работает.

Проблема не уникальна для Дженкинса. У меня есть еще один элемент запуска, который также выходит из строя с момента обновления до 10.10: антивирус TrendMicro.

4b9b3361

Ответ 1

Вот окончательный ответ.

  • Убедитесь, что у вас установлена ​​Java. Установщик 10.10, по крайней мере в моем случае, удалил Apple Java 6. Установленная Java должна удовлетворять ссылкам /usr/bin/java*. Они указывают на /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands. При установке Oracle Java вам нужен JDK, а не JRE, чтобы соответствовать этому требованию.

  • chown jenkins /var/log/jenkins/jenkins.log

  • Убедитесь, что /var/log/jenkins принадлежит дженкинсам и доступен для поиска кем угодно (режим 755). Вероятно, он уже будет в этом состоянии.

  • Отредактируйте файл /etc/newsyslog.d/jenkins.conf, изменив

    /var/log/jenkins/jenkins.log 644 3 * $D0 J

    к

    /var/log/jenkins/jenkins.log jenkins:jenkins 644 3 * $D0 J

    Это гарантирует, что новые файлы журналов, созданные во время ночного вращения журнала, принадлежат дженкинсам. Если вы этого не сделаете, вам нужно будет повторять шаг 2 каждый день.

Шаг 4 ответа @kjones, вероятно, не нужен, поскольку launchd пытается запустить jenkins каждые 10 секунд.

"0xd" в конце сообщения журнала, которое я разместил, действительно является кодом ошибки: Permission Denied.

Что изменилось в launchd? /var/log/jenkins/jenkins.log указывается как Standard{Error,Out}Path в org.jenkins-ci.plist. Моя теория заключается в том, что до того, как Yosemite launchd открыл файл и установил STDOUT и STDERR перед тем, как изменить владельца процесса на "jenkins" и запустить jenkins-runner.sh. В Yosemite кажется, что startd не открывает файл до тех пор, пока он не изменит право собственности на процесс, следовательно, "разрешение отклонено", когда файл принадлежит root.

Ответ 2

Вот шаги, которые я должен был предпринять:

  • Установить Apple OS X Java

  • Добавить права выполнения для org.jenkins-ci.plist

    sudo chmod + x/Library/LaunchDaemons/org.jenkins-ci.plist

  • Установите jenkins в качестве владельца /var/log/jenkins

    sudo chown jenkins/var/log/jenkins

  • Начать Jenkins

    launchctl start/Library/LaunchDaemons/org.jenkins-ci.plist

Ответ 3

Это устранило проблему в конце:

1) Получено последнее обновление java для java 8 из 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

Ответ 4

Больше не требуется. Я загрузил jenkins-1.588 из http://jenkins-ci.org, выбрал родной пакет Mac OS X, запустил программу установки, см. Раздел Приложения/Дженкинс, и он пробеги. Я запускаю 10.10 (14A389).