开发者社区> 问答> 正文

Alibaba Cloud Toolkit 在after deploy设置的windows服务bat脚本执行不生效

问题描述

在idea中使用Alibaba Cloud Toolkit,deploy to host 中的after deploy:配置自己的.\restart.bat启动jar不生效

返回的输出结果是执行了的,但查服务还是没有运行;而在服务器上手动执行.\restart.bat脚本是可以成功的

restart.bat

@echo off
set port=8080
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
 echo kill the process %%m who use the port
 taskkill /pid %%m -t -f
 goto start
)
:start
 
START "app" javaw -jar test.jar

期望结果

上传jar包到windows服务器后,服务器自定义的bat脚本执行能真正生效

已尝试的方法

本地和服务器手动执行正常,在After deploy配置执行有输出,但没有真正执行成功,不知道是不是还要在服务器设置什么权限之类的

展开
收起
游客u4v6ep32atbua 2022-09-01 11:22:27 145 0
1 条回答
写回答
取消 提交回答
  • 可以尝试的解决办法:

    你把 After deploy 里的命令尝试改一下看看:

    你现在的设置是相对路径:.\restart.bat

    需要改成绝对路径(xxx替换成你那边的真实路径):C:\xxx\xxx\restart.bat

    原因是:

    因为我看到你的 .bat 脚本里的 START "app" javaw -jar test.jar是通过相对路径指向的 .jar 文件,Alibaba Cloud Toolkit 的 After Deploy 背后是运行 powershell 命令,powershell 里运行 .bat 切换了上下文环境,当前路径有差异,所以需要写一个绝对路径。

    如果你把 .restart.bat 用 powershell 重写一下,比如写一个 .restart.ps1,应该就没有这个问题了。

    2022-09-09 10:36:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《云服务器运维之Windows篇》 立即下载
TAKING WINDOWS 10 KERNEL 立即下载
ECS运维指南之Windows系统诊断 立即下载