Tomcat不会停止或重启

时间:2012-09-11 12:23:52

标签: tomcat catalina

我试着停止tomcat。它失败了这条消息:

  • Tomcat没有及时停下来。 PID文件未被删除。

然后我再次尝试并得到了这个:

    找到
  • PID文件(/opt/tomcat/work/catalina.pid)但没有匹配 过程被发现。停止中止。

然后我尝试在调试模式下启动tomcat并得到了这个:

    找到
  • PID文件(/opt/tomcat/work/catalina.pid)。 Tomcat还在吗? 运行?开始中止。

我删除了/opt/tomcat/work/catalina.pid并尝试重启并得到了这个:

  • $ CATALINA_PID已设置(/opt/tomcat/work/catalina.pid)但是 指定的文件不存在。 Tomcat正在运行吗?停止中止。

任何人都知道如何重启tomcat?

14 个答案:

答案 0 :(得分:6)

我在Linux服务器上启动了第二个 Tomcat服务器时出现此错误消息。

$CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted.

当启动第二个Tomcat时,我按照要求设置了CATALINA_PID,但我的错误是将其设置为一个目录(我假设Tomcat会在那里用pid写一个默认文件名)。

修复只是改变我的CATALINA_PID以在其末尾添加文件名(我从上面的例子中选择了catalina.pid)。接下来我去了目录并做了一个简单的事情:

touch catalina.pid

创建正确名称的空文件。然后,当我执行shutdown.sh时,我收到消息说:

PID file is empty and has been ignored.
Tomcat stopped.

我没有选择杀死Tomcat,因为JVM正在使用中,所以我很高兴我发现了这个。

答案 1 :(得分:1)

似乎Tomcat实际上已停止了。我开始了,它开始很好。谢谢大家。

答案 2 :(得分:1)

你可以去那个地方 $ {CATALINA_HOME} /日志/ 打开catalina.pid。在这里,我们将获得pid。 然后终止进程。 杀死-9 pid

答案 3 :(得分:1)

最近我遇到了几次停止异常。虽然shutdown.sh提供了一些信息,但情况如下:

  • 命令ps -ef| grep java的结果为空。
  • 命令ps -ef| grep java的结果不为空。

我的意见是杀死Catalina的过程并删除pid文件(在你的情况下是/opt/tomcat/work/catalina.pid。)

结果似乎没那么严重影响他人。

答案 4 :(得分:1)

确保Tomcat当前未运行且已删除PID文件。你应该成功启动Tomcat。

如果你重新开始,那么:

  1. setenv.sh
  2. 中创建<CATALINA_HOME>/bin个文件
  3. 在其中我设置CATALINA_PID=/tmp/tomcat.pid(或您选择的其他目录),以便您可以更好地控制Tomcat进程。
  4. 然后启动Tomcat在catalina.sh中找到<CATALINA_HOME>/bin并执行:

    ./catalina.sh start
    

    并停止运行:

    ./catalina.sh stop 10 -force
    

    来自catalina.sh脚本的文档:

    ./catalina.sh
    
    Usage: catalina.sh ( commands ... )
    commands:
    
    start             Start Catalina in a separate window
    stop              Stop Catalina, waiting up to 5 seconds for the process to end
    stop n            Stop Catalina, waiting up to n seconds for the process to end
    stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
    stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running
    

    注意:如果您想使用-force标记,则必须设置CATALINA_PID

答案 5 :(得分:0)

如果您发现此类问题,可以随时尝试终止该过程。 您可以从PS或pid文件中获取进程ID并终止进程。

答案 6 :(得分:0)

您试试$ sudo ./catalina.sh stop吗?它适用于我的情况。

答案 7 :(得分:0)

第一 - &gt; rm catalina.engine

然后 - &gt; ./startup.sh

下次你重启 - &gt; ./shutdown.sh -force

答案 8 :(得分:0)

有时重新启动后,如果相同的pid正在运行,tomcat将无法启动

我的pid文件位于apache-tomcat / temp / tomcat.pid

 change file apache-tomcat/bin/catalina.sh about line 386 
 from "ps -p $PID >/dev/null 2>&1"
 to "ps -fp $PID |grep catalina >/dev/null 2>&1"

catalina.sh文件的摘录

 if [ ! -z "$CATALINA_PID" ]; then
    if [ -f "$CATALINA_PID" ]; then
      if [ -s "$CATALINA_PID" ]; then
        echo "Existing PID file found during start."
        if [ -r "$CATALINA_PID" ]; then
          PID=`cat "$CATALINA_PID"`
          ps -fp $PID |grep catalina >/dev/null 2>&1  #this line
          if [ $? -eq 0 ] ; then
            echo "Tomcat appears to still be running with PID $PID. Start aborted."
            echo "If the following process is not a Tomcat process, remove the PID file and try again:"
            ps -f -p $PID
            exit 1
          else
            echo "Removing/clearing stale PID file."
            rm -f "$CATALINA_PID" >/dev/null 2>&1
            if [ $? != 0 ]; then
              if [ -w "$CATALINA_PID" ]; then
                cat /dev/null > "$CATALINA_PID"
              else
                echo "Unable to remove or clear stale PID file. Start aborted."
                exit 1
              fi
            fi
          fi
        else
          echo "Unable to read PID file. Start aborted."

答案 9 :(得分:0)

您的案例中缺少catalina.pid。

此文件位于{your_jira_dir} /work/catalina.pid下,并且包含jira当前实例的pid。

如此

ps aux | grep jira
  • 找到正确的条目
  • 复制输出的PID,并创建一个仅包含此PID的文件。 -确保运行jira的用户可以读写。
  • 尝试再次关闭jira。

答案 10 :(得分:0)

在我的情况下,tomcat.pid位于/ opt / tomcat / temp /下。试图手动删除它。还是没用。 在/ opt / tomcat / bin /中检查setnev.sh之后,请注意有一行代码定义了JAVA_HOME:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre

注释此行,重新启动Tomcat。有用!由于我做了yum更新和Java的新次要版本,从1.8.0.212到1.8.0.222。经验教训:应该避免硬编码。

答案 11 :(得分:0)

sudo systemctl stop tomcat

为我做了

答案 12 :(得分:0)

我遇到了以下相同的问题。

PID file found but no matching process was found. Stop aborted.

解决方案是使用以下命令查找linux计算机的可用空间

df -h

上面的命令显示我的主目录已被100%使用。然后使用以下命令确定要删除的文件

du -h。

删除后,它能够在linux机器上执行IO操作,并且tomcat能够启动。

答案 13 :(得分:0)

按照这个:)

  1. 打开/etc/systemd/system/tomcat.service

你能看到 JAVA_HOME 吗? : 修改如下

Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"

在 1.11.0 - 插入你自己的 Jdk 版本

  1. systemctl daemon-reload

  2. sudo systemctl start tomcat


现在,在 Eclipse -> 添加服务器 -> .....

tomcat installation directory ??

击中
  1. Extract 您已经下载的 tomcat tar 文件。
  2. 现在回到 Eclipse -> 添加服务器 -> 浏览 -> Point to extracted file (在上面的第 1 步中完成:)
<块引用>

如果你在其他地方也被击中,请评论)