gpt4 book ai didi

tomcat - jenkins ci init.d 脚本在查询状态时返回错误

转载 作者:行者123 更新时间:2023-11-28 23:35:59 25 4
gpt4 key购买 nike

我正在使用以下由 jenkins ci 网站提供的 init.d 脚本 https://wiki.jenkins-ci.org/display/JENKINS/JenkinsLinuxStartupScript

当我启动和停止 jenkins 时它工作正常,但是当我询问状态时它给出了一个错误。如何让它正确报告状态?

[root@jenkins01 init.d]# service jenkins start
Starting Tomcat: Using CATALINA_BASE: /apps/tomcat/apache-tomcat-7.0.54
Using CATALINA_HOME: /apps/tomcat/apache-tomcat-7.0.54
Using CATALINA_TMPDIR: /apps/tomcat/apache-tomcat-7.0.54/temp
Using JRE_HOME: /usr/java/jdk1.7.0_13
Using CLASSPATH: /apps/tomcat/apache-tomcat- \
7.0.54/bin/bootstrap.jar:/apps/tomcat/apache-tomcat-7.0.54/bin/tomcat-juli.jar
Using CATALINA_PID: /apps/tomcat/jenkins-tomcat.pid
Tomcat started.

[root@jenkins01 init.d]# service jenkins status
status: Unknown job: tomcat

[root@jenkins01 init.d]# cat /apps/tomcat/jenkins-tomcat.pid
8919

这里是完整的脚本,略微针对我的设置进行了调整:

#!/bin/sh
#
# Startup script for the Jenkins Continuous Integration server
# (via Jakarta Tomcat Java Servlets and JSP server)
#
# chkconfig: - 85 15
# description: Jakarta Tomcat Java Servlets and JSP server
# processname: tomcat
# pidfile: /var/run/tomcat.pid

# Set Tomcat environment.
JENKINS_USER=tomcat
LOCKFILE=/var/lock/jenkins
export PATH=/usr/local/bin:$PATH
export HOME=/apps/tomcat
export JAVA_HOME=/usr/java/jdk1.7.0_13
export JENKINS_BASEDIR=/apps/tomcat
export TOMCAT_HOME=/apps/tomcat/apache-tomcat-7.0.54
export CATALINA_PID=$JENKINS_BASEDIR/jenkins-tomcat.pid
export CATALINA_OPTS="-DJENKINS_HOME=$JENKINS_BASEDIR/jenkins-home -Xmx512m -Djava.awt.headless=true"

[ -f $TOMCAT_HOME/bin/catalina.sh ] || exit 0

export PATH=$PATH:/usr/bin:/usr/local/bin

# See how we were called.
case "$1" in
start)
# Start daemon.
echo -n "Starting Tomcat: "
su -p -s /bin/sh $JENKINS_USER -c "$TOMCAT_HOME/bin/catalina.sh start"
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch $LOCKFILE
;;
stop)
# Stop daemons.
echo -n "Shutting down Tomcat: "
su -p -s /bin/sh $JENKINS_USER -c "$TOMCAT_HOME/bin/catalina.sh stop"
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f $LOCKFILE
;;
restart)
$0 stop
$0 start
;;
condrestart)
[ -e $LOCKFILE ] && $0 restart
;;
status)
status tomcat
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac

exit 0

最佳答案

我遇到了和你一样的问题,网站上的脚本完全错误,我已经更新了它(我在 Red Hat 上测试过)。

错误是:

  • 缺少函数库源(没有它,使用状态命令而不是库中定义的状态函数)

    # 源函数库。
    ./etc/rc.d/init.d/functions

  • 描述中的进程名称错误(tomcat 而不是 jenkins)

  • 描述中的 pid 文件有误

  • 不正确的状态语法,更正:status -p $CATALINA_PID -l $(basename $LOCKFILE) jenkins

关于tomcat - jenkins ci init.d 脚本在查询状态时返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24609979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com