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 url
或curl 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
- 连接到你的tomcat实例
- 收集一些基本的统计数据
- unix进程是否正在运行
我会评估前两个选项,因为第三个选项已经得到了充分的回答。
最简单的就是在您的WebApp上开发一个网页,收集一些基本的指标,并有一个客户端可以读取结果或检测连接问题。
为此,您有几个问题
- 用Java独立的客户端
- 使用curl 。
- 在Eclipse构buildpath中使用用户库时发生ClassNotFoundException
- “基于APR的Apache Tomcat Native库没有find”是什么意思?
- IntelliJ IDEA:Maven,项目编译和部署
- “不允许加载本地资源:file:/// C:… jpg”Java EE Tomcat
- 在Web应用程序中暴露jar文件中的资源(Tomcat7)
- Maven:将WAR复制到Tomcat的webapps目录
- 我如何正确设置permgen大小?
- Java / Tomcat独立,如何login/访问所有的HTTP GET请求
- 本地主机上的Tomcat服务器所需的几个端口(8005,8080,8009)已经在使用中