@echo off
wmic process list brief | find /i "tomcat.exe"
set result=%ERRORLEVEL%
if "%result%"=="1" echo "not running"
if "%result%"=="0" echo "running"
注意:/ i是使查找操作不区分大小写 .
6
这是在问题中询问的基于netstat的UNIX / LINUX解决方案的Windows版本:
@echo off
netstat -na | find "LISTENING" | find /C /I ":8080" > NUL
if %errorlevel%==0 goto :running
echo tomcat is not running
goto :eof
:running
echo tomcat is running
:eof
' Create an HTTP object
myURL = "http://10.1.1.1:8080/"
Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )
' Download the specified URL
objHTTP.Open "GET", myURL, False
On Error Resume Next
objHTTP.Send
intStatus = objHTTP.Status
If intStatus = 200 Then
WScript.Echo intStatus
Else
WScript.Echo "Error Connecting"
End If
10 回答
还有另一种选择,因为这可能是作为一种服务运行的
状态可以是STOPPED,RUNNING ......
如果您运行Tomcat for Windows not like a service 并且不想利用JMX,最好的方法是
哪里:
Tomcat - 默认情况下Tomcat终端窗口的窗口 Headers
java.exe - Tomcat进程的名称 . NOT tomcat.exe .
您可以使用tasklist来检查tomcat可执行文件是否正在运行 . 例如:
也可以使用选项
/S
,/U
和/P
检查删除服务器 . 有关详细信息,请参阅tasklist /?
.使用SC命令测试Tomcat服务的状态 . MJB已经建议用SC测试服务状态,另一个批处理脚本(没有FOR循环)用于测试状态:
如果您不确定服务名称是否为tomcat5,则可以列出所有服务名称
使用WMIC
注意:/ i是使查找操作不区分大小写 .
这是在问题中询问的基于netstat的UNIX / LINUX解决方案的Windows版本:
好吧,我对脚本不是很好,但也许你可以用这个作为起点:
如果有人正在侦听端口8005,那就是Tomcat的远程管理默认端口,即启动或关闭 .
或者,您可以使用http服务器侦听的端口 .
希望这可以帮助
在命令提示符下使用netstat -a .
你会发现那里列出了8080端口 .
我通过从命令行调用vb脚本来检查它
将以下脚本保存为checkurl.vbs并将ip替换为机器ip
我在使用
sc query
命令时遇到问题,因为即使tomcat崩溃,服务仍会显示为运行实际上端口无法访问您可以尝试搜索该过程并提取该行
例如: