Skip to content

mxuexxmy/procrun-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

procrun-demo

使用 Apache Commons Daemon(Procrun / prunsrv 将 Spring Boot 应用安装为 Windows 服务 的示例工程:通过独立入口类 Bootstrap(继承 Spring Boot JarLauncher)配合 start / stop 参数,由服务控制管理器在守护进程环境下启动与停止内嵌 Web 容器。

环境要求

项目 版本(以本仓库为准)
JDK 1.8(pom.xmljava.version
Spring Boot 2.7.11(spring-boot-starter-parent
构建 Maven 3.x
运行环境 Windows(服务安装与 Procrun 仅适用于 Windows)

快速开始

1. 打包

在仓库根目录执行:

mvn clean package

成功后,可执行 JAR 为:

target/procrun-demo-0.0.1.jar

2. 部署到 install 目录

将上述 JAR 复制/覆盖install 目录下,文件名需与 install.bat 中一致:procrun-demo-0.0.1.jar

3. 准备 Procrun 与 JDK

本仓库 不包含 prunsrv.exe。请从 Apache Commons Daemon 二进制发布页 获取 Windows 对应架构的 prunsrv.exe,放到 install 目录(与 install.bat 同级)。

JDKinstall.bat 中示例路径为 install\java\jdk1.8.0_271\...(Windows 下路径大小写不敏感)。完整 JDK 体积大,建议自备 JDK 8,解压到上述相对路径,或修改 install.bat 中的 --Jvm / --Classpath 等参数指向你的环境。install/Java/(或 install/java/)已加入 .gitignore,请勿把完整 JDK 提交到版本库;若历史上曾误提交,可用 git rm -r --cached install/Java(或你的实际目录名)从索引中移除并保留本地文件。

4. 安装 / 卸载服务(需管理员)

安装与删除 Windows 服务需要提升权限

  • 在「开始」菜单中找到 命令提示符PowerShell右键 → 以管理员身份运行
  • cd 到本仓库的 install 目录后执行:
脚本 作用
install.bat 安装服务(内部使用 prunsrv //IS//...
uninstall.bat 卸载服务(prunsrv //DS//...
run.bat 启动服务(prunsrv //ES//...
stop.bat 停止服务(prunsrv //SS//...

请勿在未提权的环境下强装服务,否则常见报错为拒绝访问或无法注册服务。

5. 验证

浏览器访问:http://127.0.0.1:9909/(端口见 src/main/resources/application.propertiesserver.port)。首页由 HomeController 提供,返回文本 procrun demo

install 目录用途

内容 说明
install.bat / uninstall.bat 注册或删除名为 procrun-demo 的 Windows 服务
run.bat / stop.bat 启动 / 停止已安装的服务
procrun-demo-0.0.1.jar 部署的 Spring Boot fat jar(需自行从 mvn package 复制过来)
prunsrv.exe Procrun 服务包装程序(需自备)
java\... 或自备 JDK 路径 install.bat--Jvm 指向的 jvm.dll
logs\ install.bat--LogPath 指向的目录(与 install 同级下的 logs),服务日志由 prunsrv 按级别与滚动策略写入;标准输出/错误见脚本中 --StdOutput / --StdError

服务与端口

  • 服务名称(内部名)procrun-demo(与 install.bat//IS// 后名称一致)
  • 显示名称procrun-demo
  • HTTP 端口9909

常见问题

  1. 安装/卸载提示权限不足
    使用管理员命令行执行 install.bat / uninstall.bat

  2. 找不到 JVM / 服务无法启动
    检查 install.bat--Jvm=...\jvm.dll 是否与机器上 JDK 路径一致;修改后若服务已安装,可用 prunsrv //US//procrun-demo ... 更新参数(详见仓库根目录 BLOG.md)。

  3. 防火墙拦截
    需入站放行 TCP 9909(或你修改后的 server.port)。

  4. 更新 JAR
    停止服务 → 用新构建的 jar 覆盖 install 下同名文件 → 再启动服务。

  5. prunsrv 不是内部或外部命令
    prunsrv.exe 放到 install 目录,或在 PATH 中可访问的位置,且执行脚本时当前目录为 install(脚本内使用相对路径依赖当前工作目录)。

更完整的步骤说明、日志查找方式与排错思路见 安装和使用教程.md

延伸阅读

About

Apache Commons Daemon procrun demo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors