[英]Jenkins dead but pid file exists
我遇到了無法訪問全新安裝的 Jenkins 的問題。 這是錯誤和操作系統詳細信息:啟動 jenkins 時會導致“OK”狀態消息,但是如果我運行 status-all | grep jenkins 結果:
jenkins dead but pid file exists
在 Red Hat Enterprise Linux Server 6.2 版(聖地亞哥)上運行,使用 Yum 作為包管理器。
rpm -qa | grep java
java-1.7.0-openjdk-1.7.0.19-2.3.9.1.el6_4.x86_64
java-1.6.0-openjdk-1.6.0.0-1.61.1.11.11.el6_4.x86_64
tzdata-java-2011l-4.el6.noarch
libvirt-java-0.4.7-1.el6.noarch
libvirt-java-devel-0.4.7-1.el6.noarch
java-1.6.0-openjdk-devel-1.6.0.0-1.61.1.11.11.el6_4.x86_64
權限是:
ls -la /var/lib/jenkins/
total 8
drwxr-xr-x 2 jenkins jenkins 4096 Aug 27 00:21 .
drwxr-xr-x. 29 root root 4096 Aug 27 14:47 ..
有沒有人解決過這個問題?
將JENKINS_AJP_PORT="8009"
(或任何值)更改為JENKINS_AJP_PORT="-1"
它肯定會起作用。
在遵循有關使用 Jenkins 和 Amazon ECS 設置構建管道的AWS 教程時,我遇到了完全相同的錯誤。
更改端口並沒有解決問題。
我發現錯誤來自 Jenkins 安裝的 Java 版本。
將 java-1.7.0-openjdk 更新為 java-1.8.0-openjdk 做到了
編輯:從 Anatoly 評論,更新 java:
sudo yum install java-1.8.0-openjdk
然后刪除舊版本:
sudo yum remove java-1.7.0-openjdk.x86_64
最后重啟jenkins服務
sudo service jenkins restart
通常tomcat服務在接管8080端口。 嘗試停止tomcat服務並重新運行jenkins服務。
服務tomcat停止;
服務詹金斯開始
為我工作。
我遇到了同樣的錯誤,我無法以任何方式重新啟動實例。
我在服務器中進行了“yum update”並解決了問題。
剛剛在安裝 RHEL 時遇到了這個問題。 我的解決方法是顯式設置 JENKINS_JAVA_CMD 配置參數。
例如
sudo vim /etc/sysconfig/jenkins
update:
JENKINS_JAVA_CMD=""
to:
JENKINS_JAVA_CMD="/usr/java/default/bin/java"
只是預感 - 默認情況下,RHEL/CentOS 在 /tmp 目錄上禁用文件執行。
嘗試:
mount -o remount,exec /tmp
然后(重新)啟動詹金斯。
這使得可以從 /tmp/ 目錄執行二進制文件(也可以加載 .so 文件),看起來這個特定的 Jenkins 打包需要加載某種 JNI 代碼。 當我嘗試在 CentOS 6.4 上安裝和運行時,這是我遇到的唯一問題。
如果可行,那么您可以設置它,以便在啟動時使用 /etc/fstab 中的設置(可行但會降低系統的安全性)默認情況下發生這種情況,或者嘗試破解您已經安裝的啟動過程(不推薦),或者使用 Tomcat 或其他不需要在 /tmp 目錄上執行文件的包來安裝它(推薦但更多工作)。
請按照以下步驟進行更改(假設 - 您要將端口 8888 設置為 jenkins 端口)
1. 你必須編輯 /etc/init.d/jenkins。
在文件頂部的 DAEMON_ARGS 之后添加以下兩行:
HTTP_PORT=8888 JENKINS_ARGS="--httpPort=$HTTP_PORT"
2.編輯/etc/sysconfig/jenkins
和改變
JENKINS_PORT="8888"
從終端使用以下命令啟動 Jenkins 服務
service jenkins start
檢查詹金斯的狀態
service jenkins status
從日志我的問題是 java.io.FileNotFoundException: /var/cache/jenkins/war/META-INF/MANIFEST.MF (Permission denied)
我的用戶詹金斯從我的用戶那里獲得了所有權,就像“詹金斯”一樣,chown'ing 解決了這個問題
以下幫助了我:
有一段時間會有一些 jenkins 進程過時,所以 ps -ef | grep jenkins 殺死所有這些並重新啟動如上它會是干凈的。
ps -ef | grep jenkins
sudo kill -kill <pid>
取自這里(感謝@sharp)
cd /etc/sysconfig/jenkins
更改 JENKINS_AJP_PORT
改變它從
JENKINS_AJP_PORT="8009"
到
JENKINS_AJP_PORT="-1"
對於上述錯誤,我設法轉到 /var/run/jenkins.pid 並刪除了一個已經存在的處理 ID。
然后 jenkins 進程啟動並成功運行。
確保jenkins.log
文件的所有者是 jenkins 用戶
chown jenkins:jenkins jenkins.log
如果沒有正確的所有權,jenkins 一啟動服務就會崩潰
嘗試在 /etc/sysconfig/jenkins 中將用戶從 jenkins 更改為 root
JENKINS_USER="root"
要么
檢查/var/lib/jenkins
/var/cache/jenkins
將所有權更改為 jenkins 並將 /etc/sysconfig/jenkins 中的用戶更改為“jenkins”,它將起作用。 還要更改/var/logs/jenkins
我遇到的錯誤實際上是由於/var/run/jenkins
歸 root 而不是jenkins
用戶所有。 以下為我解決了這個問題:
sudo chown -R jenkins:jenkins /var/run/jenkins
在以下文件中:
/etc/sysconfig/jenkins
我必須設置以下值:
JENKINS_USER="root"
當您的機器升級 Java 和較早版本的 Java 較早安裝的 Jenkins 時,也會出現這種情況。 在 jenkins.xml 中更改 Java 路徑。
sudo vim /etc/sysconfig/jenkins
update:
JENKINS_USER="jenkins"
to:
JENKINS_USER="root"
為我工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.