我试着停止tomcat。它失败了这条消息:
然后我再次尝试并得到了这个:
然后我尝试在调试模式下启动tomcat并得到了这个:
我删除了/opt/tomcat/work/catalina.pid并尝试重启并得到了这个:
任何人都知道如何重启tomcat?
答案 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。
如果你重新开始,那么:
setenv.sh
。<CATALINA_HOME>/bin
个文件
CATALINA_PID=/tmp/tomcat.pid
(或您选择的其他目录),以便您可以更好地控制Tomcat进程。然后启动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
答案 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)
按照这个:)
/etc/systemd/system/tomcat.service
你能看到 JAVA_HOME 吗? : 修改如下
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
在 1.11.0 - 插入你自己的 Jdk 版本
systemctl daemon-reload
sudo systemctl start tomcat
现在,在 Eclipse -> 添加服务器 -> .....
被tomcat installation directory ??
Extract
您已经下载的 tomcat tar 文件。Point to extracted file
(在上面的第 1 步中完成:)如果你在其他地方也被击中,请评论)