Linux 詹金斯死了,但pid文件存在

Linux 詹金斯死了,但pid文件存在,linux,jenkins,Linux,Jenkins,我遇到了一个新安装的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.e

我遇到了一个新安装的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 ..

以前有人解决过这个问题吗?

只是预感-RHEL/CentOS默认情况下在/tmp目录上禁用了文件执行

尝试:

然后(重新)开始詹金斯

这使得可以从/tmp/目录执行二进制文件(也可以加载.so文件),这看起来像是Jenkins的这个特殊打包需要加载某种JNI代码。当我尝试在CentOS 6.4上安装和运行时,这是我遇到的唯一问题


如果这样做有效,那么您可以使用/etc/fstab中的设置将其设置为默认情况下在启动时发生这种情况(可行,但会降低系统的安全性),或者尝试破解您已安装的安装的启动过程(不推荐),或者使用Tomcat或其他不需要在/tmp目录上执行文件的打包进行安装(建议进行更多工作)。

JENKINS_AJP_PORT=“8009”
(或任何值)更改为
JENKINS_AJP_PORT=“-1”


它肯定会工作。

我遇到了相同的错误,我无法以任何方式重新启动实例

我在服务器上进行了“yum更新”,解决了这个问题

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

请在以下步骤中进行更改(假设-您希望将端口8888设置为jenkins端口)

1.您必须编辑/etc/init.d/jenkins。

在DAEMON_ARGS之后的文件顶部添加以下两行:

HTTP_端口=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(权限被拒绝)


chown'ing从我的用户Jenkins处获得的所有权与“Jenkins”相同,它修复了问题

刚刚在RHEL安装中遇到的问题。我的修复方法是显式设置Jenkins_JAVA_CMD配置参数

例如


以下几点帮助了我:

有一段时间会有一些过时的jenkins进程,因此ps-ef | grep jenkins会杀死所有这些进程,然后重新启动,如上所述,它将是干净的

ps -ef | grep jenkins
sudo kill -kill <pid>
ps-ef | grep jenkins
sudo kill-kill

取自(感谢@sharp)

通常tomcat服务会接管8080端口。 尝试停止tomcat服务并重新运行jenkins服务

服务tomcat停止;

服务开始

为我工作

cd /etc/sysconfig/jenkins
更改JENKINS_AJP_港口

JENKINS_AJP_PORT="8009"


对于上面的错误,我设法转到/var/run/jenkins.pid并删除了一个已经存在的处理ID

然后jenkins进程启动,现在运行成功

sudo vim /etc/sysconfig/jenkins
     update:
       JENKINS_USER="jenkins"
        to:


    JENKINS_USER="root"

为我工作

确保
jenkins.log
文件的所有者是jenkins用户

chown jenkins:jenkins jenkins.log

如果没有正确的所有权,jenkins将在您启动服务后立即崩溃,而在遵循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

尝试在/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和Jenkins之前安装的旧版本Java时,也会出现这种情况。
更改jenkins.xml中的Java路径。

查看日志文件,看看会出现什么错误。catalina.out如何?该文件也是空的吗?我的文件中有各种内容。还有一个conf/logging.properties,可以用来调整日志详细性。此框中没有tomcat。-由以下文档安装:@user3811048 I有相同的问题,但有点不同。当Jenkins停止GitLab时,GitLab is可以通过浏览器访问,当GitLab停止时,Jenkins可以通过浏览器访问,但不能同时访问两者,即使是运行在8080端口的Jenkins和运行在80端口的GitLab。
mount:在/etc/fstab或/etc/mtab中找不到/tmp
-我收到这个错误。注意对于下一个想要否决这个答案的人:错误“jenkins死了,但pid文件存在”也就是说,你启动了jenkins,它死了,只剩下pid文件。这个错误信息不足以说明它为什么死。我的答案是基于直觉。仅仅因为你的jenkins不工作,你不知道为什么,并不意味着你应该否决我的答案;)我觉得下面的帖子说的很有趣“它肯定会工作”同样可能不起作用——原因与上述相同。请否决这个答案——特别是如果你不知道如何管理Linux机器或你的机器出了什么问题的话。@coding\u idot-只是为子孙后代回答-这是e
sudo chown -R jenkins:jenkins /var/run/jenkins
/etc/sysconfig/jenkins
JENKINS_USER="root"