Tomcat 后台启动进程

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:21   1869   0

最近做项目中,因为公用服务器的原因,启动在服务器上面的服务老是被人关闭(tomcat的服务窗口太多)

所以想把服务窗口转到后台启动

1:tomcat如何启动服务

基于tomcat的启动脚本(处理过),其实也可以用tomcat下的start.bat脚本启动,原理一样,只是我需要添加配置,这样写比较清晰。

@echo off

echo start tomcat webapps
set "JAVA_HOME=D:\XXX\JDK7" --设置用到的jdk
set "CATALINA_HOME=D:\XXX\apache-tomcat-xxx" --设置用到的tomcat
set "JAVA_OPTS=%JAVA_OPTS% -server -Xms64m -Xmx256m -XX:PermSize=64m -XX:MaxPermSize=256m -DXXX.config.dir=D:\XXX\XXX " //参数设置和设置用到的配置文件
START "XXX" %CATALINA_HOME%\bin\catalina.bat run -config %CATALINA_HOME%\conf\server.xml --启动相关命令
echo please waint untill the application started successfully.

echo ------ DONE ----------

从上面不难看出启动的是catalina.bat

这个链接说的也很详细:https://www.jianshu.com/p/b2f63ffa964c,具体细节看这篇文章即可,不在赘述。

2:如何后台启动tomcat服务

在上面脚本中set "CATALINA_HOME=D:\XXX\apache-tomcat-xxx" 指定的tomcat文件下找到

D:\XXX\apache-tomcat-xxx"\bin\setclasspath.bat 右键编辑这个文件,直接拖动到文件最下面

找到set _RUNJAVA="%JRE_HOME%\bin\java",将其改成

set _RUNJAVA="%JRE_HOME%\bin\javaw"

再启动最上面的脚本(或者tomcat下面的start.bat脚本)

这样就已经是后台启动tomcat服务了

3:修改tomcat启动服务的进程名称

按照步骤2中的改动后,想要关闭启动的tomcat服务,发现在进程中都是javaw.exe名称,如果服务器中启动了多个此类javaw.exe进程,但是却根本不知道关闭哪一个,修改进程名称操作如下

打 开上面路径中的setclasspath.bat文件,找到set _RUNJAVA="%JRE_HOME%\bin\java"这一行。将该行注释掉(即改为 rem set _RUNJAVA="%JRE_HOME%\bin\java"),然后在该行下面添加如下两行并进行保存:

copy "%JAVA_HOME%\bin\javaw.exe" "%JAVA_HOME%\bin\xxx.exe" --这里还是用javaw,不然不是后台启动服务

set _RUNJAVA="%JAVA_HOME%\bin\xxx"

注意:omp为你所想看到的进程名字(即在任务管理器中的映像名称)

重启tomcat后在在任务管理器中看见的进程名就不再是javaw.exe,而是xxx.exe了。

4:依据后台名称关闭服务进程

步骤3后,我们终于可以区分各个服务,就是每次关闭服务需要去任务管理器中,找到xxx.exe并关闭进程,有点麻烦是不是,其实我们可以写个关闭指定进程名称的脚本,具体如下:

@echo off

echo stop xxx.exe
call taskkill /f /im xxx.exe --一定加上/f 强制终止进程
pause

至此就结束了

如果对上面的步骤有任何疑问或者更好的方法,欢迎回复交流,谢谢!

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP