Tomcat 雄猫在跑吗?

Tomcat 雄猫在跑吗?,tomcat,Tomcat,有兴趣了解人们通常如何检查Tomcat是否在Unix环境中运行 我可以使用 ps -ef | grep java ps -ef | grep logging 或者我检查端口号是否处于活动状态 netstat -a | grep 8080 有没有更好的方法来检查Tomcat是否正在运行?以上内容似乎是一种检查Tomcat是否正在运行的“黑客”方式。我发现Tomcat相当挑剔,因为运行的进程或开放的端口并不一定意味着它实际上在处理请求。我通常尝试抓取一个已知页面,并将其内容与预先计算的预期值进行

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

我可以使用

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实例的连接
  • 收集一些基本的统计数据
  • unix进程是否正在运行
  • 我将评估前两个选项,因为第三个选项已经得到充分回答

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

    为此,您有几个问题

      • 这是我的两分钱

        对于集群设置,我有多个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”的思路进行操作