tomcat shutdown.sh结束不了,Could not contact localhost:8005

使用./shutdown.sh关闭Tomcat,有时会关闭成功,有时会出现关闭错误;

Jul 06, 2017 10:57:37 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact localhost:8005. Tomcat may not be running.
Jul 06, 2017 10:57:37 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:579)
        at java.net.Socket.connect(Socket.java:528)
        at java.net.Socket.<init>(Socket.java:425)
        at java.net.Socket.<init>(Socket.java:208)
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:450)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:400)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:487)

这个问题是Tomcat内存导致的,可以修改下Tomcat内存,切换到bin目录下面,使用

vi catalina.sh

修改catalina.sh文件,在位置cygwin=false前,插入以下内容

JAVA_OPTS="-Xms512m -Xmx1024m -Xss2048K -XX:PermSize=256m -XX:MaxPermSize=512m"

重启Tomcat即可。

时间: 2024-12-11 16:28:18

tomcat shutdown.sh结束不了,Could not contact localhost:8005的相关文章

在Linux系统里运行shutdown.sh命令关闭Tomcat时出现错误提示

服务器:linnux 5.5 64位,已安装好 jdk: Tomcat版本:apache-tomcat-7.0.53 操作软件:Xshell 4(Free for Home / School) 刚开始重启了一次tomcat,但用浏览器访问网站的时候一直卡着打不开,可能是tomcat的问题,于是在Xshell里输入命令 ps -ef|grep java 查看进程中是否有tomcat出现,如下图: 出现如上信息,说明tomcat进程存在,再次运行shutdown.sh和ps -ef|grep jav

linux下tomcat shutdown后 java进程依旧存在

今天遇到一个很奇怪的问题,如标题所示: linux下(之所以强调linux下,是因为在windows下正常),执行tomcat ./shutdown.sh 后,虽然tomcat服务不能正常访问了,但是ps -ef | grep java 后,发现tomcat对应的java进程未随web容器关闭而销毁,进而存在僵尸java进程. 刚开始百思不得其解,google下,发现存在一种说法是:有非守护线程存在,jvm不会退出.进而确认是因为项目代码存在 scheduledExecutorService.s

linux下tomcat shutdown后 java进程依旧存在 -- 阿里MetaQ篇

此篇文章描述的症状和上一篇文章一致(即执行tomcat ./shutdown.sh 后,虽然tomcat服务不能正常访问了,但是ps -ef | grep java 后,发现tomcat对应的java进程未随web容器关闭而销毁,进而存在僵尸java进程),但是处理的过程不一致,所有又单开了一篇blog来写. 我在另外一个项目中使用到了阿里的MetaQ消息中间件,然后shutdown tomcat 发现java进程依旧存在,沿用上一篇文章的思路,我最开始以为是本地代码中scheduledExec

Tomcat在shutdown.sh之后,进程仍然存在的原因

在linux环境下,tomcat 执行shutdown.sh之后,进程仍然存在,这是个让人头疼的问题,个人认为最根本的原因是有一些非deamon thread 存在,这种情况下,tomcat关闭后,整个进程并不会结束.如何判这种情况呢? 大家可以按照以下步骤去判断: 1.找到tomcat当前运行的pid(使用ps -ef |grep tomcat), 2.找到jdk的目录,可以使用which java 命令,并切换到bin目录 3.在bin目录下执行jstack pid,查看每个thread,找

tomcat停止脚本shutdown.sh分析

一.分析说明 为了写出更加完善的tomcat启动方面的脚本,用于代码上线自动化,特分析下tomcat的bin目录下的shutdown.sh脚本,学习标准的sh脚本的编写方法,从中吸取经验 二.脚本分析 #!/bin/sh # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements.  See the NOTICE file distributed wit

linux环境中关闭tomcat,通过shutdown.sh无法彻底关闭--线程池

最近测试环境上测试的项目通过shutdown.sh始终无法彻底关闭. 之前临时解决方法两种: 第一:通过ps -ef|grep tomcat查看到tomcat的进程直接使用kill来杀死进程. 第二: 基本原理为启动tomcat时记录启动tomcat的进程id(pid),关闭时强制杀死该进程 1.找到tomcat下bin/catalina.sh文件,vi进去添加点东西,主要是记录tomcat的pid,如下: 大概在第125行左右,添加如下代码 #设置CATALINA_PID(后加)if [ -z

linux使用shutdown.sh命令关闭不完tomcat进程的处理方法

1.修改bin/catalina.sh文件   查找PRGDIR=`dirname "$PRG"` 这一行:   在这一行的下面增加如下3行语句:   if [ -z "$CATALINA_PID" ]; then     CATALINA_PID=$PRGDIR/CATALINA_PID cat $CATALINA_PID   fi   功能:判断 CATALINA_PID有没有配置,   没有的话,就使用当前目录(bin)   的CATALINA_PID文件来记

tomcat命令shutdown.sh注意点

在经常使用停掉服务   shutdown.sh   时候,需要注意一个点就是在配置文件server.xml配置一下端口: 否则会影响到其他服务,每个配置需要配置端口不一致,这样导致停掉服务的时候,相互不影响 原文地址:https://www.cnblogs.com/chxish/p/10437308.html

linux下Tomcat shutdown无效

问题: linux下关闭tomcat后,发现重启Tomcat后,端口号提示被占用, 原因: 这时可能是项目中的后台线程或者socket依然在运行把端口号占用, 解决办法: ①:可以输入命令:$netstat -pan|grep 2809 查看这个端口号的情况, 可以netstat -anp |grep 3306 找出这个端口号,再kill当前的PID进程 ②:通过iptables工具将该端口禁掉 iptables -A INPUT -p tcp --dport 111 -j DROP ③:关闭端