很简单,如何使用命令提示符来确定Tomcat是否在Windows中运行?
我正在写一个批处理脚本,必须这样做。 这是Bash版本:
RESULT=`netstat -na | grep $2 | awk '{print $7}' | wc -l`
港口2美元。
我正在寻找类似的东西。 使用Cygwin是不可能的,这个脚本必须能够在只有Tomcat的机器上运行。
你可以使用tasklist来检查tomcat可执行文件是否正在运行。 例如:
@echo off tasklist /FI "IMAGENAME eq tomcat.exe" | find /C /I ".exe" > NUL if %errorlevel%==0 goto :running echo tomcat is not running goto :eof :running echo tomcat is running :eof
也可以使用选项/S
, /U
和/P
来检查删除服务器。 查看tasklist /?
了解详情。
使用SC命令测试Tomcat服务的状态。 MJB已经建议使用SC来测试服务状态,还有另外一个用于测试状态的批处理脚本(没有FOR循环):
@ECHO OFF SC query tomcat5 | FIND "STATE" | FIND "RUNNING" > NUL IF ERRORLEVEL 1 ( ECHO Stopped ) ELSE ( ECHO Running )
如果您不确定服务名称是否是tomcat5 ,则可以列出所有的服务名称
SC query state= all | FIND "SERVICE_NAME"
使用WMIC
@echo off wmic process list brief | find /i "tomcat.exe" set result=%ERRORLEVEL% if "%result%"=="1" echo "not running" if "%result%"=="0" echo "running"
注意:/我是使查找操作不区分大小写。
这是基于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
那么,我不太擅长脚本,但也许你可以用这个作为起点:
netstat -a -n | findstr:8005
获取是否有人在端口8005侦听。这是Tomcat的远程管理的默认端口,即启动或关闭。
或者,您可以使用http服务器侦听的端口。
希望这可以帮助
在命令提示符下使用netstat -a。
你会在那里找到8080端口。
如果你运行Windows的Tomcat而不是一个服务,并且不想利用JMX,那么最好的方法是
for /F %%I in ('tasklist /FI "WINDOWTITLE eq Tomcat" /NH') do if %%I==java.exe goto alreadyRun
哪里:
还有一个选择,因为这可能是作为服务运行的
FOR /F "tokens=4 delims= " %%A IN ('SC QUERY tomcat5 ^| FIND "STATE"') DO SET status=%%A echo "%status%"
状态可以是像STOPPED,RUNNING …
我通过从命令行调用一个VB脚本来检查它
cscript //nologo checkurl.vbs | findstr "200" IF errorlevel 1 GOTO :not_running
将下面的脚本保存为checkurl.vbs,并将ip替换为机器ip
' 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
我使用sc query
命令有问题,因为即使tomcat崩溃,服务仍然会显示为正在运行的实际端口不可访问
您可以尝试搜索过程并提取行
例如:
ps|grep tomcat