Linux服务器
如果应用运行的目标服务器是Linux环境的,则参考如下脚本示意
应用停止脚本模板
##### 可在脚本开始运行时调用,打印当时的时间戳及PID。PID_FILE_PATH="/etc/aliyun/main_process_id"DEPLOY_NAME="demo"SOFTWARE_HOME="demo-1.0.0-SNAPSHOT.jar"FLAG=0function job_stop() { for line in`cat ${PID_FILE_PATH}`doif [[ ${FLAG}==1 ]]; thenkill-9$lineFLAG=0sed-i /${SOFTWARE_HOME}/,+1d ${PID_FILE_PATH}sed-i /${SOFTWARE_HOME}/d ${PID_FILE_PATH}fiif [[ $line=="${DEPLOY_NAME}:${SOFTWARE_HOME}" ]]; thenFLAG=1fidone} job_stop
Windows服务器
如果应用运行的目标服务器是Windows环境的,则参考如下脚本示意
@echooffREM####### 单进程软件包安装脚本模版说明 #######REM1.此脚本默认在根路径下执行windows系统默认为C:\Users\AdministratorREM2.您的部署脚本请编写在【user_shell】子程序中,建议您先将软件包复制到目标部署程序目录后再进行相关命令的处理REM3.需遵循进程ID的存储约束软件包进程ID标识需存储到指定路径REM##### 如果返回值为0,则认为此执行成功,如果非0,则认为执行失败call:mainexit/b%ERRORLEVEL%REM##### 触发执行 日志由OOS自动记录REM############### 用户可修改区域 开始 ###############REM由使用方基于系统页面填写[!!重要!!]:user_confSETDEPLOY_NAME=请填写部署物名称SETSOFTWARE_NAME=请填写软件包名称REM执行成功/失败:y/nSETRETURN=ygoto:eofREM用户自定义安装脚本REM软件包会自动拉取到实例“C:\Windows\system32”路径下REM建议您先将软件包复制到目标部署程序目录后再进行相关指令的处理:user_shellecho这里是您的部署安装脚本位置REM执行成功/失败:y/nSETRETURN=ngoto:eofREM##### 在此函数中检查服务是否起来,可以是检查进程,curl http地址等方式:check_healthREM执行成功/失败:y/nSETRETURN=ygoto:eofREM############### 用户可修改区域 结束 ###############REM############### 以下内容禁止修改 ###############REM1=>installfailREM2=>checkhealthfailREM3=>recordprocessidfailREM4=>usershellfailREM############### 可在脚本开始运行时调用,打印当时的时间戳及PID,同时记录软件包进程ID到指定路径 ###############:mainSETRETURN=ncall:user_confechouser_conf函数执行返回值:%RETURN%if%RETURN%==necho"exit code 3, record process id fail"&&exit/b3echo%DEPLOY_NAME%-%SOFTWARE_NAME%-%DATE%-%TIME%>C:\main_process_idcall:user_shellechousershell函数执行返回值:%RETURN%if%RETURN%==necho"exit code 4, user shell fail"&&exit/b4call:check_healthechocheck_health函数执行返回值:%RETURN%if%RETURN%==necho"exit code 2, check health fail"&&exit/b2if%RETURN%==yecho"exit code 0, run deploy script success "&&exit/b0goto:eof