簡體   English   中英

詹金斯死了但pid文件存在

[英]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”並解決了問題。

  • java版本“1.7.0_55”
  • 詹金斯版。 1.571

剛剛在安裝 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.

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