Tomcat正在运行吗?

zig*_*ggy 102 tomcat

有兴趣了解人们通常如何检查Tomcat是否在Unix环境中运行.

我要么检查进程是否正在运行

ps -ef | grep java
ps -ef | grep logging
Run Code Online (Sandbox Code Playgroud)

或者我检查端口号是否有效

netstat -a | grep 8080
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来检查Tomcat是否正在运行?以上似乎是检查Tomcat运行的"hacky"方式.

Tha*_*ran 88

在我的linux系统上,我使用startup.sh脚本启动Tomcat.为了知道它是否正在运行,我使用

ps -ef | grep tomcat  
Run Code Online (Sandbox Code Playgroud)

如果输出结果包含我的tomcat文件夹的完整路径,那么它正在运行


小智 64

试试这个,因为它需要root权限使用sudo

sudo service tomcat7 status
Run Code Online (Sandbox Code Playgroud)

  • 如果Tomcat不是服务怎么办?而是一个包. (15认同)

dog*_*ane 55

为什么grep ps,当pid被写入$CATALINA_PID文件?

我有一个cron'checker脚本,当tomcat关闭时会发送一封电子邮件:

kill -0 `cat $CATALINA_PID` > /dev/null 2>&1
if [ $? -gt 0 ]
then
    echo "Check tomcat" | mailx -s "Tomcat not running" support@dom.com
fi
Run Code Online (Sandbox Code Playgroud)

我想你也可以wget用来检查你的tomcat的健康状况.如果您有一个带有用户负载等的诊断页面,您可以定期获取它并解析它以确定是否有任何错误.

  • 要从操作系统安装的 Tomcat 中了解 $CATALINA_PID 的值,请尝试:`ps aewwx | grep CATALINA_PID`,您将在运行进程的输出中找到它,以及其他环境变量。在 Debian 8 中,这个值是:CATALINA_PID=/var/run/tomcat8.pid (3认同)
  • 重要的是要注意,pid文件可能不存在,它取决于环境以及tomcat的启动方式。请参阅[this answer](http://stackoverflow.com/a/22021196/120794)以在启动时创建pid文件。 (2认同)

Mic*_*eyn 13

netstat -lnp | grep 8080如果你知道Tomcat的监听端口,那可能是最好的方法.如果您想确定功能是否正常,则必须建立连接并发送HTTP请求并获得响应.您可以以编程方式或使用任何Web浏览器执行此操作.


小智 7

如果在本地安装了tomcat,请在浏览器窗口中键入以下URL:{localhost:8080}

这将显示Tomcat主页,其中包含以下消息.

如果你看到这个,你已经成功安装了Tomcat.恭喜!

如果tomcat安装在单独的服务器上,则可以使用有效主机名或安装了tomcat的Iess键入replace localhost.

以上适用于tomcat使用默认端口8080的标准安装

  • 如果Tomcat安装在单独的服务器上,则无法从浏览器访问它将无法确定它是否正在运行:它可能无法访问. (18认同)

Dha*_*ose 7

您可以通过以下方式检查tomcat的状态:

ps -ef | grep tomcat  
Run Code Online (Sandbox Code Playgroud)

如果tomcat正在运行,这将返回tomcat路径

netstat -a | grep 8080
Run Code Online (Sandbox Code Playgroud)

其中8080​​是tomcat端口


kon*_*kit 6

我经常做

tail -f logs/catalina.out
Run Code Online (Sandbox Code Playgroud)

当我看到那里时

INFO: Server startup in 77037 ms
Run Code Online (Sandbox Code Playgroud)

然后我知道服务器已启动。


Dik*_*kla 6

wget url或者curl url 其中 url 是应该可用的 tomcat 服务器的 url,例如: wget http://localhost:8080. 然后检查退出代码,如果它是 0 - tomcat 已启动。


Dev*_*ora 5

创建一个 Shell 脚本来检查 tomcat 是启动还是关闭,并为 sh 设置一个 cron 让它每隔几分钟检查一次,如果关闭则自动启动 tomcat。下面的代码示例片段

TOMCAT_PID=$(ps -ef | awk '/[t]omcat/{print $2}')
echo TOMCAT PROCESSID $TOMCAT_PID

if [ -z "$TOMCAT_PID" ]
then
    echo "TOMCAT NOT RUNNING"
    sudo /opt/tomcat/bin/startup.sh
else
   echo "TOMCAT RUNNING"
fi
Run Code Online (Sandbox Code Playgroud)