NSSM启动tomcat部署Java程序

关于NSSM启动Springboot打成的jar包服务,可看我原来的文章

WIndows服务器中使用nssm启动多个Springboot服务

tomcat启动的服务,会有一个命令对话框,对话框关闭了,程序也就推出了,为了不显示命令对话框,以服务的方式注册到window的服务表,可以使用NSSM.

NSSM 启动 Tomcat 时,不需要设置额外的 Arguments。

分析TOMCAT的startup.bat:

  1. 如果脚本硬编码了 Tomcat 路径:
bash 复制代码
   set "CATALINA_HOME=D:\SCM\SCM_TH"
   set "CATALINA_BASE=D:\SCM\SCM_TH"
  1. 脚本会调用
bash 复制代码
%CATALINA_HOME%\bin\catalina.bat start

NSSM 配置步骤:

  1. 基本配置:

Application 标签页:

bash 复制代码
  Path: D:\SCM\SCM_TH\bin\startup.bat
  Startup directory: D:\SCM\SCM_TH\bin
  Arguments: (留空)
  1. 或者直接使用 catalina.bat:

如果你想更直接的控制,也可以这样配置:

bash 复制代码
Application 标签页:
  Path: D:\SCM\SCM_TH\bin\catalina.bat
  Startup directory: D:\SCM\SCM_TH\bin
  Arguments: start
  1. 推荐使用 catalina.bat 的原因:

· 更简洁直接

· 避免 startup.bat 中的 pause 命令影响服务启动

· 更好的控制启动参数

  1. 完整 NSSM 配置示例:
bash 复制代码
nssm install SCM_TH "D:\SCM\SCM_TH\bin\catalina.bat"
nssm set SCM_TH AppDirectory "D:\SCM\SCM_TH\bin"
nssm set SCM_TH AppParameters "start"
nssm set SCM_TH AppStdout "D:\SCM\SCM_TH\logs\stdout.log"
nssm set SCM_TH AppStderr "D:\SCM\SCM_TH\logs\stderr.log"
  1. 如果需要在 Arguments 中添加其他参数:

如果你的 Tomcat 需要额外的 JVM 参数,可以这样配置:

bash 复制代码
Arguments: start -Dsome.property=value

或者通过环境变量方式在 NSSM 的 Environment 标签页中设置:

bash 复制代码
CATALINA_OPTS=-Xms512m -Xmx1024m -Dfile.encoding=UTF-8

建议:

最简单的方式就是:

bash 复制代码
· Path: D:\SCM\SCM_TH\bin\catalina.bat
· Startup directory: D:\SCM\SCM_TH\bin
· Arguments: run

这样配置后,NSSM 会正确启动你的 Tomcat 服务。

实际操作日志如下

我的电脑时64位的,nssm路径是D:\nssm-2.24\win64,打开cmd

\>cd D:\nssm-2.24\win64

D:\nssm-2.24\win64>nssm install

执行上述命令,会打开配置对话框,填写以下信息

Path: D:\SCM\SCM_TH\bin\catalina.bat

Startup directory: D:\SCM\SCM_TH\bin

Arguments: run

保存成功后命令行就会出现以下成功的日志

Service "SCMTH" installed successfully!

D:\nssm-2.24\win64>net start SCMTH

SCMTH 服务正在启动 .

SCMTH 服务已经启动成功。

D:\nssm-2.24\win64>net stop SCMTH

.

SCMTH 服务已成功停止。

D:\nssm-2.24\win64>net start SCMTH

SCMTH 服务正在启动 .

SCMTH 服务已经启动成功。

D:\nssm-2.24\win64>

D:\nssm-2.24\win64>nssm edit SCMTH

相关推荐
江湖有缘1 分钟前
零基础入门:使用 Docker 快速部署 Organizr 个人主页
java·服务器·docker
牛奔3 分钟前
如何理解 Go 的调度模型,以及 G / M / P 各自的职责
开发语言·后端·golang
chilavert3185 分钟前
技术演进中的开发沉思-357:重排序(下)
java·后端
Boop_wu12 分钟前
Spring生态
java·后端·spring
jzheng861013 分钟前
Spring Boot(快速上手)
java·spring boot·后端
wgslucky13 分钟前
SpringBoot解决Request和Response的内容多次读取的问题
java·spring boot·多次读取request数据
wangjialelele21 分钟前
Linux下的IO操作以及ext系列文件系统
linux·运维·服务器·c语言·c++·个人开发
怒放吧德德26 分钟前
Python3基础:基础实战巩固,从“会用”到“活用”
后端·python
Sylvia-girl30 分钟前
IO流~~
java·开发语言
HypoxiaDream38 分钟前
LINUX-Ext系列⽂件系统
linux·运维·服务器