Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat从jenkins执行shell重新启动后停止_Java_Linux_Shell_Tomcat_Jenkins - Fatal编程技术网

Java Tomcat从jenkins执行shell重新启动后停止

Java Tomcat从jenkins执行shell重新启动后停止,java,linux,shell,tomcat,jenkins,Java,Linux,Shell,Tomcat,Jenkins,我已将jenkins配置为删除tomcat现有工作区,将现有构建复制到tomcat工作区,然后重新启动tomcat。我使用jenkins提供的执行shell。脚本如下所示: #!/bin/sh version=1.0.0-BUILD-SNAPSHOT build_no=${BUILD_NUMBER} if [ $build_no ] then cd ~ TOMCAT_WEBAPPS=`locate apache-tomcat | grep apache-tomcat | grep weba

我已将jenkins配置为删除tomcat现有工作区,将现有构建复制到tomcat工作区,然后重新启动tomcat。我使用jenkins提供的执行shell。脚本如下所示:

#!/bin/sh
version=1.0.0-BUILD-SNAPSHOT
build_no=${BUILD_NUMBER}

if [ $build_no ]
then
 cd ~
 TOMCAT_WEBAPPS=`locate apache-tomcat | grep apache-tomcat | grep webapps | head -n 1 | awk '{ print $1 }'`
 rm $TOMCAT_WEBAPPS/app-api.war
 rm -rf $TOMCAT_WEBAPPS/app-api/*
 rmdir $TOMCAT_WEBAPPS/app-api/
 wget http://jenkins/job/project/ws/api/build/api-$version-$build_no-bin.zip
 unzip -j connectedcare-api-$version-$build_no-bin.zip
 rm api-$version-$build_no-bin.zip
 cp api-$version.war $TOMCAT_WEBAPPS/app-api.war
 rm api-$version.war
else
 echo "Please specify the jenkins build number as an argument: "$0" <build_number>"
 exit
fi

echo "Restarting tomcat ..."

TOMCAT_PID=`ps -ef | grep tomcat | grep java | awk ' { print $2 } '`

if [ $TOMCAT_PID ]
then
  echo "Tomcat is running with PID" $TOMCAT_PID

  echo "Forced tomcat stop with PID" $TOMCAT_PID
  kill -9 $TOMCAT_PID
  echo "Tomcat was stoped"
fi

echo "Starting tomcat"

TOMCAT_STARTUP_FILE=`locate apache-tomcat | grep apache-tomcat | grep startup.sh | awk ' { print $1 } '`

$TOMCAT_STARTUP_FILE

TOMCAT_PID=`ps -ef | grep tomcat | grep java | awk ' { print $2 } '`

if [ $TOMCAT_PID ]
then
  echo "Tomcat is running with PID" $TOMCAT_PID
else
  echo "Failed to start tomcat."
fi
问题是当我看到linux机器tomcat没有运行,并且日志中没有任何内容,所以我无法找出我做错了什么。你能给我一些建议吗


谢谢

我设法找到了解决办法。Jenkins操作名为BUILD_ID的环境变量。因此,在重新启动tomcat之前,需要以下代码行

导出生成ID=dontKillMe

Restarting tomcat ...
Tomcat PID 10152
Tomcat is running with PID 10152
Forced tomcat stop with PID 10152
Tomcat was stoped
Starting tomcat
Tomcat started.
Tomcat is running with PID 14781