Tomcat正在运行吗?

有兴趣知道人们通常会检查Tomcat是否在Unix环境下运行。

我要么检查该进程正在运行使用

ps -ef | grep java ps -ef | grep logging 

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

 netstat -a | grep 8080 

有没有更好的方法来检查Tomcat正在运行? 以上似乎是检查Tomcat正在运行的一种“黑客”方法。

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

我有一个cron检查脚本,当tomcatclosures时发送一封邮件:

 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 

我想你也可以用wget来检查你的tomcat的健康状况。 如果你有一个带有用户加载等的诊断页面,你可以定期获取它并parsing它,以确定是否有任何问题。

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

 ps -ef | grep tomcat 

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

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

 sudo service tomcat7 status 

netstat -lnp | grep 8080 如果你了解Tomcat的监听端口, netstat -lnp | grep 8080可能是最好的方法。 如果你想确定它是否有效,你将不得不build立一个连接并发送一个HTTP请求并得到一个响应。 您可以通过编程方式或使用任何Web浏览器来完成此操作。

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

这将显示以下消息的Tomcat主页。

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

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

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

你可以用下面的方法检查tomcat的状态:

 ps -ef | grep tomcat 

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

 netstat -a | grep 8080 

其中8080​​是tomcat端口

我经常做

 tail -f logs/catalina.out 

当我看到那里

 INFO: Server startup in 77037 ms 

那么我知道服务器已经启动了。

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

我发现Tomcat相当挑剔,因为正在运行的进程或开放的端口并不一定意味着它实际上正在处理请求。 我通常尝试抓取一个已知的页面,并将其内容与预先计算的期望值进行比较。

你想build立一个警报系统吗? 对于简单的“心跳”,请对Tomcat端口执行HTTP请求。

要进行更详细的监控,可以设置JMX和/或SNMP来查看JVM统计信息。 我们使用SNMP插件运行Nagios(连接到JMX)来检查Tomcat的内存使用情况并每10-15分钟申请线程池大小。

http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html

更新(2012):

我们已经升级了我们的系统,使用“monit”来检查tomcat进程。 我很喜欢。 只需很less的configuration,它会自动validation服务正在运行,如果不是,将自动重新启动。 (发送电子邮件提醒)。 它可以与/etc/init.d脚本集成或通过进程名称检查。

由于我的tomcat实例被命名为tomcat_。 例如。 tomcat_8086,我用

 ps aux | grep tomcat 

其他方法是使用nc实用程序

nc -l 8086 (端口号)

要么

ps aux | grep java

 $ sudo netstat -lpn |grep :8080 

检查端口号

 $ ps -aef|grep tomcat 

任何tomcat正在服务器下运行。

 tsssinfotech-K53U infotech # ps -aef|grep tomcat 

根9586 9567 0 11:35 pts / 6 00:00:00 grep –colour = auto tomcat

试试这个命令

 ps -ef | awk '/[t]omcat/{print $2}' 

如果tomcat正在运行,它将返回pid。

基本上你想testing

  1. 连接到你的tomcat实例
  2. 收集一些基本的统计数据
  3. unix进程是否正在运行

我会评估前两个选项,因为第三个选项已经得到了充分的回答。

最简单的就是在您的WebApp上开发一个网页,收集一些基本的指标,并有一个客户端可以读取结果或检测连接问题。

为此,您有几个问题

  • 用Java独立的客户端
  • 使用curl 。