Windows下tomcat进程管理

2017-01-20  本文已影响0人  我的头好疼

在windows下使用tomcat有时候很糟心,因为使用tomcat下自带的批处理脚本很慢,如果不上热部署,那么改一点重启一点,非常糟心。当然,还是建议上热部署。
下面是之前开发的过程中找到的一个极好的办法。适用情况tomcat8,端口8080(端口在脚本可以改)。当然,建议安装tomcat的时候选择exe的安装,一方面,够简单,而且直接会把环境变量添加到windows下,免去了配置的麻烦;另一方面,用我下面的脚本会非常方便,直接杀死tomcat进程,启动关闭再也不用等了。哈哈哈哈哈哈....


@echo off
REM ________________________________获取管理员权限________________________________

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM 判断是否具有管理员权限
if '%errorlevel%' NEQ '0' (
REM 若没有取管理员权限   
    goto UACPrompt

) else ( goto gotAdmin )

:UACPrompt

    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"

    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"

    exit /B

:gotAdmin

    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

    pushd "%CD%"

    CD /D "%~dp0"

REM __________________________________关闭tomcat8080端口______________________________

REM 关闭tomcat的8080端口
setlocal enabledelayedexpansion
for /f "tokens=5 delims= " %%a in ('netstat -aon ^| findstr "8080"') do (
    set a=%%a
   
)

taskkill /pid !a! /f && goto 1 || goto 2
:1 
echo "tomcat  关闭成功"
pause>nul
exit
:2 
echo "tomcat  关闭失败,请使用管理员权限运行"
pause>nul
exit

@echo off

REM ________________________________________________________________

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM 判断是否具有管理员权限
if '%errorlevel%' NEQ '0' (
REM 若没有取管理员权限   
    goto UACPrompt

) else ( goto gotAdmin )

:UACPrompt

    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"

    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"

    exit /B

:gotAdmin

    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

    pushd "%CD%"

    CD /D "%~dp0"

REM ________________________________________________________________

net start tomcat8

pause & exit

netstat  -ano

查询端口号所对应的PID,以8080为例

netstat -ano | findstr "8080"

根据查询的PID找到对应的进程

tasklist|findstr "5264"

删除对应的PID(有的需要管理员权限)

taskkill /f /pid "进程号"

结束某个进程

taskkill /f /t /im tor.exe
上一篇下一篇

猜你喜欢

热点阅读