[英]Tomcat8 is running but the status is Tomcat servlet engine is not running
I'm confused about how tomcat is working now. 我对雄猫现在如何工作感到困惑。
When I try to start it "sudo service tomcat8 start"
or "sudo /etc/init.d/tomcat8 start"
I get an error "[FAIL] Starting Tomcat servlet engine: tomcat8 failed!"
当我尝试启动它时, "sudo service tomcat8 start"
或"sudo /etc/init.d/tomcat8 start"
出现错误"[FAIL] Starting Tomcat servlet engine: tomcat8 failed!"
. 。 No errors in logs. 日志中没有错误。
If I execute "sh catalina.sh run"
I get 如果执行"sh catalina.sh run"
我会得到
Using CATALINA_BASE: /usr/share/tomcat8
Using CATALINA_HOME: /usr/share/tomcat8
Using CATALINA_TMPDIR: /usr/share/tomcat8/temp
Using JRE_HOME: /usr/lib/jvm/jdk-8-oracle-x64/jre
Using CLASSPATH: /usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar
May 26, 2017 8:05:10 AM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/common/classes], exists: [false], isDirectory: [false], canRead: [false]
May 26, 2017 8:05:10 AM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/common], exists: [false], isDirectory: [false], canRead: [false]
May 26, 2017 8:05:10 AM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/server/classes], exists: [false], isDirectory: [false], canRead: [false]
May 26, 2017 8:05:10 AM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/server], exists: [false], isDirectory: [false], canRead: [false]
May 26, 2017 8:05:10 AM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/shared/classes], exists: [false], isDirectory: [false], canRead: [false]
May 26, 2017 8:05:10 AM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/shared], exists: [false], isDirectory: [false], canRead: [false]
May 26, 2017 8:05:10 AM org.apache.catalina.startup.Catalina load
WARNING: Unable to load server configuration from [/usr/share/tomcat8/conf/server.xml]
May 26, 2017 8:05:10 AM org.apache.catalina.startup.Catalina load
WARNING: Unable to load server configuration from [/usr/share/tomcat8/conf/server.xml]
May 26, 2017 8:05:10 AM org.apache.catalina.startup.Catalina start
SEVERE: Cannot start server. Server instance is not configured.
If I execute "sh startup.sh"
I get 如果执行"sh startup.sh"
我将得到
Using CATALINA_BASE: /usr/share/tomcat8
Using CATALINA_HOME: /usr/share/tomcat8
Using CATALINA_TMPDIR: /usr/share/tomcat8/temp
Using JRE_HOME: /usr/lib/jvm/jdk-8-oracle-x64/jre
Using CLASSPATH: /usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar
Tomcat started.
Only after execuiting "sh startup.sh"
my project works. 只有执行"sh startup.sh"
我的项目才能正常工作。 BUT, the status is 但是,状态为
sudo service tomcat8 status
[ ok ] Tomcat servlet engine is not running..
WTF??? 跆拳道??? Any Ideas? 有任何想法吗?
It all worked perfectly yesterday until I launched the script. 直到我启动脚本,所有这些都在昨天运行良好。 This script we use in another projects and it works fine. 我们在另一个项目中使用了此脚本,并且效果很好。
#!/bin/bash
#v2.5
url="jenkins/ROOT.war"
stop="/etc/init.d/tomcat8 stop"
start="/etc/init.d/tomcat8 start"
tmp_dir="/tmp/new-version"
tomcat_dir="/var/lib/tomcat8"
app_dir="$tomcat_dir/webapps"
cache="$tomcat_dir/work/Catalina"
log="$tomcat_dir/logs/catalina.out"
tomcat_user="tomcat"
tomcat_user="$tomcat_user"
log_dir="/var/log/new-version"
backup_dir="/home/tomcat"
if [ "$url" = "" ]; then
echo "${url}"
else
mkdir -p $log_dir
rm -rf $tmp_dir
mkdir -p $tmp_dir/ROOT
cd $tmp_dir/ROOT
application_file=$(echo $url | sed 's/.*\/\(.*\)/\1/')
echo $application_file
mv $application_file ROOT.war
jar xf ROOT.war 2>&1 >> $log_dir/`date +%F`.log
rm -rf ROOT.war
jar cf ROOT.war *
mv ROOT.war $tmp_dir/ROOT.war
cd $tmp_dir
echo "revision is prepared. Deploy it and restart tomcat?[y/n]"
read answer
if [ "$answer" = "y" ]; then
$unmonitor
sh $stop
mv -f $log $log.`date +%F`.rev.$old_revision
rm -rf $app_dir/ROOT $app_dir/ROOT.war $cache
mv ROOT.war $app_dir/ROOT.war
touch $log
chown -R $tomcat_user:$tomcat_group $app_dir
sh $start
$monitor
echo "Revision $new_revision is up and running!"
echo "Now compressing old logs..."
tar czf $log.`date +%F`.rev.$old_revision.tgz $log.`date +%F`.rev.$old_revision
rm -rf $log.`date +%F`.rev.$old_revision
cd ~
rm -rf $tmp_dir
echo "Done!"
else
echo "Aborted!"
fi
fi
Server info 服务器信息
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
The problem was at this line chown -R $tomcat_user:$tomcat_group $app_dir
where it is using tomcat user=tomcat instead of tomcat user=tomcat8. 问题出在这一行chown -R $tomcat_user:$tomcat_group $app_dir
,其中它使用的是tomcat user = tomcat而不是tomcat user = tomcat8。 I changed webapps directory permissions not for my tomcat8 user. 我更改了我的tomcat8用户的webapps目录权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.