簡體   English   中英

Jenkins 正在運行,但服務表示失敗

[英]Jenkins is running but service says it is failed

由於我已經通過 yum update jenkins 在 CentOS7 上安裝了 jenkins 2.319.1 我遇到了問題,我可以通過 sudo systemctl start jenkins 啟動 jenkins 作為服務。然后 jenkins 將啟動一個我可以通過瀏覽器訪問它。通過 sudo systemctl status jenkins 獲取服務狀態。

我先得到:

PROD [root@abmrndplje001 grafra1969]$ systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
  Drop-In: /etc/systemd/system/jenkins.service.d
           └─00-proxy.conf
   Active: activating (start) since Wed 2021-12-15 19:42:42 CET; 1min 54s ago
     Docs: man:systemd-sysv-generator(8)
  Control: 969 (jenkins)
   CGroup: /system.slice/jenkins.service
           ├─ 969 /bin/sh /etc/rc.d/init.d/jenkins start
           ├─1004 runuser -s /bin/bash jenkins -c ulimit -S -c 0 >/dev/null 2>&1 ; /etc/alternatives/java ...
           ├─1035 bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /etc/alternatives/java -Djava.awt.headless=true...
           └─1041 /etc/alternatives/java -Djava.awt.headless=true -Xmx8g -XX:MaxPermSize=1024m -DJENKINS_H...

Dec 15 19:42:42 abmrndplje001.pass-consulting.com systemd[1]: Starting LSB: Jenkins Automation Server...
Dec 15 19:42:42 abmrndplje001.pass-consulting.com runuser[1004]: pam_unix(runuser:session): session open...0)
Dec 15 19:42:42 abmrndplje001.pass-consulting.com jenkins[969]: Starting Jenkins OpenJDK 64-Bit Server V....0
Dec 15 19:42:55 abmrndplje001.pass-consulting.com jenkins[969]: WARNING: An illegal reflective access op...ed
Dec 15 19:42:55 abmrndplje001.pass-consulting.com jenkins[969]: WARNING: Illegal reflective access by co...n)
Dec 15 19:42:55 abmrndplje001.pass-consulting.com jenkins[969]: WARNING: Please consider reporting this ...$2
Dec 15 19:42:55 abmrndplje001.pass-consulting.com jenkins[969]: WARNING: Use --illegal-access=warn to en...ns
Dec 15 19:42:55 abmrndplje001.pass-consulting.com jenkins[969]: WARNING: All illegal access operations w...se
Hint: Some lines were ellipsized, use -l to show in full.
PROD [root@abmrndplje001 grafra1969]$

大約 5 分鍾后。 狀態從激活變為失敗,並作為超時的原因。 然而,進程仍在運行,jenkins 正在運行,可以通過瀏覽器訪問。

PROD [root@abmrndplje001 grafra1969]$ systemctl status jenkins -l
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
  Drop-In: /etc/systemd/system/jenkins.service.d
           └─00-proxy.conf
   Active: failed (Result: timeout) since Wed 2021-12-15 19:47:42 CET; 5min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 969 ExecStart=/etc/rc.d/init.d/jenkins start (code=killed, signal=TERM)
   CGroup: /system.slice/jenkins.service
           ├─1004 runuser -s /bin/bash jenkins -c ulimit -S -c 0 >/dev/null 2>&1 ; /etc/alternatives/java -Dj                                                                   ava.awt.headless=true -Xmx8g -XX:MaxPermSize=1024m -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenk                                                                   ins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --ht                                                                   tpListenAddress=localhost --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
           ├─1035 bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /etc/alternatives/java -Djava.awt.headless=true -X                                                                   mx8g -XX:MaxPermSize=1024m -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/l                                                                   og/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --httpListenAddress=localhos                                                                   t --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
           └─1041 /etc/alternatives/java -Djava.awt.headless=true -Xmx8g -XX:MaxPermSize=1024m -DJENKINS_HOME                                                                   =/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cac                                                                   he/jenkins/war --daemon --httpPort=8080 --httpListenAddress=localhost --debug=5 --handlerCountMax=100 --handl                                                                   erCountMaxIdle=20

Dec 15 19:42:42 abmrndplje001.pass-consulting.com jenkins[969]: Starting Jenkins OpenJDK 64-Bit Server VM war                                                                   ning: Ignoring option MaxPermSize; support was removed in 8.0
Dec 15 19:42:55 abmrndplje001.pass-consulting.com jenkins[969]: WARNING: An illegal reflective access operati                                                                   on has occurred
Dec 15 19:42:55 abmrndplje001.pass-consulting.com jenkins[969]: WARNING: Illegal reflective access by com.goo                                                                   gle.inject.internal.cglib.core.$ReflectUtils$2 (file:/var/cache/jenkins/war/WEB-INF/lib/guice-4.0.jar) to met                                                                   hod java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
Dec 15 19:42:55 abmrndplje001.pass-consulting.com jenkins[969]: WARNING: Please consider reporting this to th                                                                   e maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$2
Dec 15 19:42:55 abmrndplje001.pass-consulting.com jenkins[969]: WARNING: Use --illegal-access=warn to enable                                                                    warnings of further illegal reflective access operations
Dec 15 19:42:55 abmrndplje001.pass-consulting.com jenkins[969]: WARNING: All illegal access operations will b                                                                   e denied in a future release
Dec 15 19:47:42 abmrndplje001.pass-consulting.com systemd[1]: jenkins.service start operation timed out. Term                                                                   inating.
Dec 15 19:47:42 abmrndplje001.pass-consulting.com systemd[1]: Failed to start LSB: Jenkins Automation Server.
Dec 15 19:47:42 abmrndplje001.pass-consulting.com systemd[1]: Unit jenkins.service entered failed state.
Dec 15 19:47:42 abmrndplje001.pass-consulting.com systemd[1]: jenkins.service failed.

如何正確啟動服務?

剛剛發現同一個jenkins版本在不同的CentOS7服務器上運行,服務狀態為active。

到目前為止我看到的唯一區別是工作版本沒有使用 runuser 作為第一個命令

[root@jenkins2-rnd grafra1969]# systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: active (running) since Thu 2021-12-16 15:57:56 CET; 18min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4436 ExecStop=/etc/rc.d/init.d/jenkins stop (code=exited, status=0/SUCCESS)
  Process: 4448 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/jenkins.service
           ├─ 1883 ssh-agent
           ├─ 3329 ssh-agent
           ├─ 4452 /etc/alternatives/java -Djava.awt.headless=true -Dhudson.plugins.active_directory.ActiveDirectorySecurityRealm.forceLdaps=f...
           ├─ 5150 ssh-agent
           ├─ 8365 ssh-agent
           ├─12083 sh -c ({ while [ -d '/var/lib/jenkins/workspace/Pam4Web_master@tmp/durable-8b6bf811' -a \! -f '/var/lib/jenkins/workspace/P...
           ├─12084 sh -c ({ while [ -d '/var/lib/jenkins/workspace/Pam4Web_master@tmp/durable-8b6bf811' -a \! -f '/var/lib/jenkins/workspace/P...
           ├─12085 sh -xe /var/lib/jenkins/workspace/Pam4Web_master@tmp/durable-8b6bf811/script.sh
           ├─12088 /usr/lib/jvm/java-11-openjdk/bin/java -classpath /var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven-3.6/boot...
           ├─12969 sleep 3
           ├─13279 ssh-agent
           ├─14595 ssh-agent
           ├─15882 ssh-agent
           └─17056 ssh-agent

我有完全相同的問題並修復它。 問題來自您的 /etc/init.d/jenkins。 您可能對其進行了修改,並且更新過程(rhel7 上的 yum)無法替換它。 這個“舊文件”與新版本的 jenkins 不再兼容。 這就是 systemctl 命令無法正常工作的原因。

問題是 yum 想要安裝新版本的 /etc/init.d/jenkins。 但是因為我之前編輯過它。 新文件已安裝在 /etc/init.d/jenkins.rpmnew 中,而 systemd 仍使用舊文件。 我所做的是將我的更改從舊的 /etc/init.d/jenkins 轉移到新文件。 然后刪除舊的/etc/init.d/jenkins,將/etc/init.d/jenkins.rpmnew重命名為/etc/init.d/jenkins並重啟服務。

我們遇到了同樣的問題......(在redhat 7上)

jenkins 的 jira 上存在同樣的問題: https://issues.jenkins.io/browse/JENKINS-67334

好像關門了,但是不明白為什么...

我仍然不明白到底需要做什么:

“我遇到了完全相同的問題並修復它。問題來自您的/etc/init.d/jenkins。您可能修改它並且更新過程(rhel7上的yum)無法替換它。這個'舊文件'與新版本的 jenkins 不兼容。這就是 systemctl 命令無法正常工作的原因。

有人可以幫忙嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM