Tomcat 雄猫在跑吗?
有兴趣了解人们通常如何检查Tomcat是否在Unix环境中运行 我可以使用Tomcat 雄猫在跑吗?,tomcat,Tomcat,有兴趣了解人们通常如何检查Tomcat是否在Unix环境中运行 我可以使用 ps -ef | grep java ps -ef | grep logging 或者我检查端口号是否处于活动状态 netstat -a | grep 8080 有没有更好的方法来检查Tomcat是否正在运行?以上内容似乎是一种检查Tomcat是否正在运行的“黑客”方式。我发现Tomcat相当挑剔,因为运行的进程或开放的端口并不一定意味着它实际上在处理请求。我通常尝试抓取一个已知页面,并将其内容与预先计算的预期值进行
ps -ef | grep java
ps -ef | grep logging
或者我检查端口号是否处于活动状态
netstat -a | grep 8080
有没有更好的方法来检查Tomcat是否正在运行?以上内容似乎是一种检查Tomcat是否正在运行的“黑客”方式。我发现Tomcat相当挑剔,因为运行的进程或开放的端口并不一定意味着它实际上在处理请求。我通常尝试抓取一个已知页面,并将其内容与预先计算的预期值进行比较。
netstat-lnp | grep8080
可能是最好的方法,如果您知道Tomcat的侦听端口的话。如果您想确定它是否正常工作,那么必须建立连接并发送HTTP请求并获得响应。您可以通过编程或使用任何web浏览器执行此操作。为什么grep ps
,当pid已写入$CATALINA\u pid
文件时
我有一个cron
'd 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
我想你也可以使用
wget
来检查你的tomcat的健康状况。如果您有一个带有用户加载等信息的诊断页面,您可以定期获取该页面并对其进行分析,以确定是否出现任何问题。您是否正在尝试设置警报系统?对于简单的“心跳”,对Tomcat端口执行HTTP请求
要进行更详细的监视,可以设置JMX和/或SNMP以查看JVM状态。我们使用SNMP插件(到JMX的网桥)运行Nagios,每10-15分钟检查一次Tomcat内存使用情况并请求线程池大小
更新(2012年):
我们已经升级了系统,使用“monit”检查tomcat进程。我真的很喜欢。在很少配置的情况下,它会自动验证服务是否正在运行,如果服务未运行,则会自动重新启动。(发送电子邮件警报)。它可以与/etc/init.d脚本集成,也可以通过进程名进行检查 在我的linux系统上,我使用startup.sh脚本启动Tomcat。要知道它是否正在运行,我使用
ps -ef | grep tomcat
如果输出结果包含指向我的tomcat文件夹的整个路径,则它正在运行如果tomcat是本地安装的,请在浏览器窗口中键入以下url:
netstat -a | grep 8080
{localhost:8080}
这将显示带有以下消息的Tomcat主页
如果您看到了这一点,那么您已经成功地安装了Tomcat。祝贺
如果tomcat安装在单独的服务器上,则可以键入
将localhost替换为安装tomcat的有效主机名或Iess
以上内容适用于tomcat使用默认端口8080的标准安装。您可以通过以下方式检查tomcat的状态:
ps -ef | grep tomcat
如果tomcat正在运行,这将返回tomcat路径
netstat -a | grep 8080
其中8080是tomcat端口请尝试此操作,因为它需要root权限,请使用sudo
sudo service tomcat7 status
我总是这样
tail -f logs/catalina.out
当我看到那里
INFO: Server startup in 77037 ms
然后我知道服务器启动了。
wget-url
或curl-url
其中url是应该可用的tomcat服务器的url,例如:
wgethttp://localhost:8080
。
然后检查退出代码,如果是0-tomcat启动
$ sudo netstat -lpn |grep :8080
检查端口号
$ ps -aef|grep tomcat
是否有任何tomcat正在服务器下运行
tsssinfotech-K53U infotech # ps -aef|grep tomcat
root 9586 9567 0 11:35分/6 00:00:00 grep--color=auto tomcat
因为我的tomcat实例被命名为tomcat。例如tomcat_8086,我用 # 另一种方法是使用nc实用程序
nc-L8086
(端口号)
或
请尝试此命令
ps -ef | awk '/[t]omcat/{print $2}'
如果tomcat正在运行,它将返回pid。基本上是您想要测试的
- 这是我的两分钱
对于集群设置,我有多个tomcat实例在不同的端口上运行。我使用以下命令检查在不同端口上运行的每个进程
/sbin/fuser 8080/tcp
根据需要更换端口号
要终止进程,请在上述命令中使用-k
- 这比
方式或任何其他命令都要快得多,您可以调用一个命令,然后再调用另一个ps-ef
grep
- 可以很好地与tomcat的多个安装或任何其他使用端口(事实上是在同一台服务器上运行)的服务器配合使用
BSD
操作系统上的等效命令是fstat
创建一个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
tomcat.sh
帮助您轻松了解这一点
tomcat.sh使用文档说明:
无参数:如果tomcat正在运行,则显示其进程id,否则不执行任何操作
因此,在命令提示符下运行命令并检查pid:
$tomcat.sh
如果tomcat安装在单独的服务器上,无法从浏览器访问它将无法确定它是否正在运行:它可能无法访问。我已经在Ubuntu上安装了Tomcat8,但会导致“无法连接”如果你在Linux上有一个无头服务器,这不是一个选项。这和windows一样容易吗?我是否只需修改windows等效命令,将其放入批处理文件中,然后通过调度程序进行调度?您可以按照tasklist | find/i“Tomcat”| echo“Tomcat”的思路进行操作