Дженкинс терпит неудачу при запуске "стартовых дженкингов службы",
Я установил jenkins на Cnetos 7, используя следующее:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import http://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
как описано в официальной документации
Однако когда я запускаю:
service start jenkins
Появляется следующее сообщение об ошибке:
Starting jenkins (via systemctl): Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
[FAILED]
Запуск systemctl status jenkins.service
дает мне следующее:
● jenkins.service - LSB: Jenkins Continuous Integration Server
Loaded: loaded (/etc/rc.d/init.d/jenkins)
Active: failed (Result: exit-code) since Wed 2016-09-21 16:45:28 BST; 3min 59s ago
Docs: man:systemd-sysv-generator(8)
Process: 2818 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.sun.akuma.JavaVMArguments.of(JavaVMArguments...04)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.sun.akuma.JavaVMArguments.current(JavaVMArgu...92)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.sun.akuma.Daemon.daemonize(Daemon.java:106)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.sun.akuma.Daemon.all(Daemon.java:88)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: ... 6 more
Sep 21 16:45:28 webstack.local.caplib systemd[1]: jenkins.service: control process exited, code=exited s...s=1
Sep 21 16:45:28 webstack.local.caplib systemd[1]: Failed to start LSB: Jenkins Continuous Integration Server.
Sep 21 16:45:28 webstack.local.caplib systemd[1]: Unit jenkins.service entered failed state.
Sep 21 16:45:28 webstack.local.caplib systemd[1]: jenkins.service failed.
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: [FAILED]
Hint: Some lines were ellipsized, use -l to show in full.
и запуск journalctl -xe
дает мне следующее:
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.sun.akuma.JavaVMArguments.of(JavaVMArguments.java:
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.sun.akuma.JavaVMArguments.current(JavaVMArguments.
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.sun.akuma.Daemon.daemonize(Daemon.java:106)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.sun.akuma.Daemon.all(Daemon.java:88)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: ... 6 more
Sep 21 16:45:28 webstack.local.caplib runuser[2819]: pam_unix(runuser:session): session closed for user jenkin
Sep 21 16:45:28 webstack.local.caplib systemd[1]: jenkins.service: control process exited, code=exited status=
Sep 21 16:45:28 webstack.local.caplib systemd[1]: Failed to start LSB: Jenkins Continuous Integration Server.
-- Subject: Unit jenkins.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit jenkins.service has failed.
--
-- The result is failed.
Sep 21 16:45:28 webstack.local.caplib systemd[1]: Unit jenkins.service entered failed state.
Sep 21 16:45:28 webstack.local.caplib systemd[1]: jenkins.service failed.
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: [FAILED]
Sep 21 16:45:28 webstack.local.caplib polkitd[1392]: Unregistered Authentication Agent for unix-process:2813:8
Sep 21 16:45:28 webstack.local.caplib dhclient[1390]: DHCPREQUEST on eno16777984 to 192.168.15.254 port 67 (xi
Sep 21 16:45:28 webstack.local.caplib dhclient[1390]: DHCPACK from 192.168.15.254 (xid=0x2ab6e6bc)
Sep 21 16:45:30 webstack.local.caplib dhclient[1390]: bound to 192.168.15.120 -- renewal in 865 seconds.
Sep 21 16:45:36 webstack.local.caplib systemd[1]: Starting Cleanup of Temporary Directories...
-- Subject: Unit systemd-tmpfiles-clean.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit systemd-tmpfiles-clean.service has begun starting up.
Sep 21 16:45:36 webstack.local.caplib systemd[1]: Started Cleanup of Temporary Directories.
-- Subject: Unit systemd-tmpfiles-clean.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit systemd-tmpfiles-clean.service has finished starting up.
--
-- The start-up result is done.
Оба из них действительно бесполезны. Как исправить эту проблему?
Ответы
Ответ 1
Аналогичная проблема на Ubuntu 16.04.
Setting up jenkins (2.72) ...
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
invoke-rc.d: initscript jenkins, action "start" failed.
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; bad; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2017-08-01 05:39:06 UTC; 7ms ago
Docs: man:systemd-sysv-generator(8)
Process: 3700 ExecStart=/etc/init.d/jenkins start (code=exited, status=1/FAILURE)
Aug 01 05:39:06 ip-0 systemd[1]: Starting LSB: Start Jenkins ....
Aug 01 05:39:06 ip-0 jenkins[3700]: ERROR: No Java executable ...
Aug 01 05:39:06 ip-0 jenkins[3700]: If you actually have java ...
Aug 01 05:39:06 ip-0 systemd[1]: jenkins.service: Control pro...1
Aug 01 05:39:06 ip-0 systemd[1]: Failed to start LSB: Start J....
Aug 01 05:39:06 ip-0 systemd[1]: jenkins.service: Unit entere....
Aug 01 05:39:06 ip-0 systemd[1]: jenkins.service: Failed with....
Чтобы исправить проблему вручную, установите Java Runtime Environment:
JDK версия 9:
sudo apt install openjdk-9-jre
JDK версия 8:
sudo apt install openjdk-8-jre
Откройте конфигурационный файл Jenkins:
sudo vi /etc/init.d/jenkins
Наконец, добавьте путь к новому исполняемому файлу java (строка 16):
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/lib/jvm/java-8-openjdk-amd64/bin/
Ответ 2
ОШИБКА: Linux/Centos:
Работа для jenkins.service завершилась неудачно, потому что процесс управления завершился с кодом ошибки. Подробнее см. "Systemctl status jenkins.service" и "journalctl -xe".
Решение:
-
Отредактируйте исходный файл Jenkins, выполнив
sudo vi /etc/init.d/jenkins
-
Добавьте свой собственный путь Java, например:
/opt/oracle/product/java/jdk1.8.0_45/bin/java
-
Перезапустите службу:
sudo service jenkins start
sudo service jenkins status
sudo service jenkins stop
Ответ 3
У меня была аналогичная проблема на Ubuntu 16.04. Благодаря @Guna я понял, что мне пришлось вручную установить Java (sudo apt install openjdk-8-jre
).
Ответ 4
У меня была похожая проблема с CentOS 7, когда была установлена правильная версия Java, и java -version
дал хороший результат.
Собрав несколько ответов из разных тем SO, я сделал следующее:
Убедитесь, что Java установлена (и версия совместима с Jenkins)
Есть некоторые хитрости, если сказать о CentOS, это упоминается в официальном учебнике Дженкинса здесь
Если Java установлена и доступна, при запуске java -v
вывод должен выглядеть следующим образом:
~>$java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
Добавьте путь к Java в свой /etc/rc.d/init.d/jenkins
~>$ sudo vim /etc/rc.d/init.d/jenkins
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/java/jdk1.8.0_162/bin/java ##add your java path here
"
Как получить "реальный" путь к дистрибутиву Java, который вызывается, когда вы печатаете что-то вроде java -v
Следуйте этой ТАКОЙ теме
Если описанные выше шаги не помогли, попробуйте убедиться, что все проблемы с разрешениями решены:
- Если Jenkins не удается запустить Java, возможно, у пользователя
jenkins
нет прав на его запуск, затем измените jenkins
на root
в конфигурации (описано здесь)
- Попробуйте поиграть с
chmod
установкой разрешений 755
для папки установки java
И, наконец, что помогло мне в результате
Когда я запустил journalctl -xe
, как было предложено при попытке sudo service jenkins start
, я получил похожую трассировку стека Java:
Starting CloudBees Jenkins Enterprise Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at Main._main(Main.java:140)
at Main.main(Main.java:98)
Caused by: java.lang.UnsatisfiedLinkError: /tmp/jna--1712433994/jna7387046629130767794.tmp: /tmp/jna--1712433994/jna7387046629130767794.tmp: failed to map segment from shared object: Operation not permitted
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1937)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1822)
at java.lang.Runtime.load0(Runtime.java:809)
at java.lang.System.load(System.java:1086)
at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:761)
at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:736)
at com.sun.jna.Native.<clinit>(Native.java:131)
at com.sun.akuma.CLibrary.<clinit>(CLibrary.java:89)
at com.sun.akuma.JavaVMArguments.resolvePID(JavaVMArguments.java:128)
at com.sun.akuma.JavaVMArguments.ofLinux(JavaVMArguments.java:116)
at com.sun.akuma.JavaVMArguments.of(JavaVMArguments.java:104)
at com.sun.akuma.JavaVMArguments.current(JavaVMArguments.java:92)
at com.sun.akuma.Daemon.daemonize(Daemon.java:106)
at com.sun.akuma.Daemon.all(Daemon.java:88)
... 6 more
Проблема в том, что Jenkins пытается запустить библиотеку JNA
из каталога /tmp
, который по умолчанию помечен как noexec
, поэтому мы можем это исправить, создав временный каталог по пути /jenkins
, чтобы он мог быть казненным.
Полный способ сделать это описан здесь службой поддержки CloudBees (большое им спасибо)
Я надеюсь, что что-то из этого списка поможет (также я в основном оставлю это для меня в будущем, когда мне придется снова установить Jenkins for CentOs :)
Ответ 5
У меня была такая же проблема, и когда я проверил, установлена ли Java, я понял, что нет, поэтому установка Java решила проблему для меня.
Проверьте наличие java:
java -version
Если Java установлена в системе, команда вернет java-версию, иначе она покажет такое сообщение.
The program 'java' can be found in the following packages:
* default-jre
* gcj-5-jre-headless
* openjdk-8-jre-headless
* gcj-4.8-jre-headless
* gcj-4.9-jre-headless
* openjdk-9-jre-headless
Для установки java используйте следующую команду.
sudo apt-get install default-jre
Ответ 6
Перед установкой Jenkins вы должны установить JDK:
apt install openjdk-8-jre
После этого установите Jenkins:
apt-get install jenkins
И проверьте статус Jenkins (должен быть "активным"):
systemctl status jenkins.service
Ответ 7
Продолжается борьба с той же ошибкой как для ubuntu, так и для ubuntu производных и opensuse. Это отличный способ обойти и двигаться вперед, пока вы не сможете исправить реальную проблему.
Просто используйте изображение докеров для дженкинсов из докер-хаба.
докеры тянут дженкинсов/дженкинсов
docker run -itd -p 8080: 8080 - имя jenkins_container jenkins
Используйте браузер для перехода к:
localhost: 8080 или my_pc: 8080
Чтобы получить маркер на пути, указанном на экране входа в систему:
docker exec -it jenkins_container/bin/ bash
Затем перейдите к файлу маркера и скопируйте/вставьте код в экран входа. Вы можете использовать меню редактирования/копирования/вставки на терминалах kde/gnome/lxde/xfce для копирования текста терминала, а затем вставить его с помощью ctrl-v
Файл войны
Или используйте файл jenkins.war. В целях развития вы можете запустить jenkins в качестве пользователя (или как jenkins) из командной строки или создать короткий script в /usr/local или/opt, чтобы запустить его.
Загрузите jenkins.war с страницы загрузки jenkins:
https://jenkins.io/download/
Тогда положите его в безопасное место, ~/jenkins будет хорошим местом.
mkdir ~/jenkins; cp ~/Загрузки/jenkins.war ~/jenkins
Затем запустите:
nohup java -jar ~/jenkins/jenkins.war > ~/jenkins/jenkins.log 2 > & 1
Чтобы получить исходный токен паролей администратора, скопируйте текстовый вывод:
cat/home/my_home_dir/.jenkins/secrets/initialAdminPassword
и вставьте это в поле ctrl-v в качестве начального пароля администратора.
Надеюсь, что это достаточно подробно, чтобы помочь вам...
Ответ 8
Я пытался установить его в kubuntu 18.04, и я уже был уверен, что у меня установлена Java, я подтвердил,
java -version
Я получил такой результат
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
Поскольку я уже знаю, что мои переменные PATH Java определены в файле /etc/environment, я добавил этот файл в начало файла /etc/init.d/jenkins
source /etc/environment
вы даже можете удалить PATH из файла /etc/init.d/jenkins, так как он уже определен в /etc/environment
после этого я перезапустил мой сервер jenkins и, похоже, начал нормально работать с localhost: 8080
Ответ 9
[100%] Решено. У меня была такая же проблема сегодня. Я проверил свое серверное пространство
df-h
Я обнаружил, что на сервере недостаточно места, поэтому я проверяю, какой каталог имеет больший размер,
sudo du -ch / | sort -h
Я увидел 12.2G/var/lib/jenkins, поэтому я вошел в эту папку и очистил все журналы с помощью
cd /var/libs/jenkins
rm *
и перезапустите Дженкинс, он будет работать нормально
sudo systemctl restart jenkins.service
Ответ 10
Добавляя к тому, на что уже ответил Гуна Секаран. Дженкинсу нужно, чтобы пользовательские дженкинсы присутствовали, чтобы запустить дженкинсов в качестве службы.
Чтобы добавить пользователя fire 'useradd jenkins' как root
и огонь "passwd jenkins" как корень, прежде чем начать Дженкинса в качестве службы.
Ответ 11
~> $ sudo vim/etc/rc.d/init.d/jenkins
кандидаты ="
/И т.д./альтернатив /Java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/USR/бен /Java
/usr/java/jdk1.8.0_162/bin/java ## добавить свой java-путь
"
Ответ 12
Для ubuntu 16.04 существует проблема с брандмауэром. Вам нужно открыть порт 8080, используя следующую команду:
sudo ufw allow 8080
Подробные шаги приведены здесь: https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-16-04
Ответ 13
Вам просто нужно установить Java. Он работал после установки Java версии 8, используя эту команду: sudo apt install openjdk-8-jre-headless
Ответ 14
Похож на конфликты в Java-версии.
Пожалуйста, обратитесь к https://medium.com/lucian-daniliuc/upgrading-jenkins-on-ubuntu-14-04-lts-df3e1209f98c
Ответ 15
Я столкнулся с той же проблемой при настройке jenkins, проблема в том, что java не установлен и, следовательно, недоступен в пути.
Самый простой способ - использовать scp здесь, чтобы скопировать двоичные файлы jdk в окно aws ec2, скрипт не будет работать, если вы его создадите, поскольку они продолжают обновлять URL-адреса загрузки (я имею в виду Orale): scp -i C: /Users/key -pair.pem jdk-8u191-linux-x64.tar.gz ec2- [email protected]: ~/
$cd /opt
$sudo cp /home/ec2-user/jdk* .
$sudo chmod +x jdk*
$sudo tar xzf jdk-8u191-linux-x64.tar.gz
$sudo tar xzf jdk-8u191-linux-x64.tar.gz
$cd jdk1.8.0_191/
$sudo alternatives --install /usr/bin/java java /opt/jdk1.8.0_191/bin/java 2
$sudo alternatives --config java
Здесь я загружаю файл tar.gz в окнах loal и передаю по scp пользователю AWS ec2-, каталог по умолчанию. Надеюсь, поможет.
Ответ 16
В моем случае порт 8080 был занят другим сервисом (Apache Airflow).
Поэтому я редактирую порт HTTP в этом файле:
sudo vi /etc/default/jenkins
А потом запустил сервис и он заработал:
sudo service jenkins start
Я был на Ubuntu 18.04 и установил openjdk-8
Ответ 17
vi /etc/init.d/jenkins
добавить:
/usr/lib/jvm/java/jre/bin/java
Ответ 18
rm -rf/var/log/jenkins
слишком большое бревно