2016-03-29 26 views
0

Mevcut çalışma alanında silinen tomcat'e jenkins yapılandırdım, varolan yapıyı tomcat çalışma alanına kopyalayın ve sonra tomcat'i yeniden başlatın. Jenkins'dan yürütme kabuğunu kullanıyorum. yapı çalıştırırkenTomcat, jenkins yürütme kabuğundan yeniden başlatıldıktan sonra durur

#!/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 

, sonuç aşağıdaki gibidir: komut şudur

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 

Hiçbir çalışan linux makine tomcat de olduğu arıyorum ve sorun daha sonra günlüklerde hiçbir şey yok, bu yüzden ne yaptığımı yanlış anlayamıyorum. Bana biraz önerin var mı?

Teşekkür ederiz

cevap

2

Bunun için bir çözüm bulmayı başardım. Jenkins BUILD_ID adı verilen ortam değişkenini manipüle eder. Bu nedenle, tomcat'i yeniden başlatmadan önce aşağıdaki kod satırına ihtiyaç vardır.

ihracat BUILD_ID = dontKillMe

İlgili konular