SpringBoot使用procrun部署windows服务,使用批处理执行java命令遇到的问题记录。

背景:

最近在写的一个web系统自动更新服务里面需要调用外部一个jar来完成应用的文件更新。

更新服务本身是一个使用springboot开发的web项目。

由于要保证更新服务本身能够跟随操作系统自动启动,所以使用了procrun来部署windows服务。

问题:

部署成服务后,启动服务,执行更新操作

java -jar %1/../ext/upgrade.jar update %1 >> %1/../upgrade.log

发现upgrade.log文件生成了,但是没有任何内容,并且更新操作未执行。

分析:

1.怀疑是服务的问题,于是分别使用idea的debug方式和直接在命令行启动发现均能够正常将日志输出到upgrade.log,所以程序本身没有问题。

2.既然程序本身没有问题,那么剩下的只能是部署服务导致的问题。然而javaservice本身只是做了一个启动器的作用,那么问题肯定不在javaservice上。于是怀疑是不是用户的问题,难道是用户权限的问题?

3.打开任务管理器查看果然服务是使用SYSTEM启动的,但是想一想SYSTEM权限应该大于当前的用户的权限,所以应该不是权限的问题。

4.然后修改脚本一下,查看环境变量,查看upgrade.log内容,发现果然没有JAVA环境变量。想起来原来我配置的java环境变量是配置在用户变量上的,没有配置在系统变量。

echo %PATH% >> %1/../upgrade.log

解决:

修改系统环境变量后,果然执行成功,并输出日志。比较无语的是没有这个可执行程序竟然没有错误信息输出,导致问题排查起来相当麻烦。。看来错误信息的输出真是非常重要

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值