最近做項目中,因爲公用服務器的原因,啓動在服務器上面的服務老是被人關閉(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
至此就結束了
如果對上面的步驟有任何疑問或者更好的方法,歡迎回復交流,謝謝!