麒麟部署平台应用启动和停止脚本模板

简介: 麒麟部署平台ISV操作手册

Linux服务器

如果应用运行的目标服务器是Linux环境的,则参考如下脚本示意


应用启动脚本模板

#!/bin/bash#######  单进程软件包安装脚本模版说明  ##########1. 此脚本默认在根路径下执行 Linux系统默认为 /root#2. 脚本安装软件执行成功后 默认会删除远程下载的路径#3. 用户自定义实现 建议在 user_shell 下#4. 需遵循进程ID的存储约束 软件包进程ID标识需存储到指定路径#######  error code specification  ########## Please update this documentation if new error code is added.# 1   => install fail# 2   => check health fail# 3   => record process id fail# 4   => user shell fail# 用户部署物名称&软件包名称 由使用方基于页面填写DEPLOY_NAME="demo"SOFTWARE_NAME="demo-1.0.0-SNAPSHOT.jar"APP_HOME="/etc/aliyun"PROCESS_ID_PATH="${APP_HOME}/main_process_id"user_shell() {
#用户自定义安装脚本 START#软件包会自动拉取到实例 “~” 路径下,脚本成功后软件包会自动删除 #用户自行决定是否需要先把软件包转移位置#此处以jar类型软件包为例,后台进程保持运行cp${SOFTWARE_NAME}${APP_HOME}    nohup java -jar${APP_HOME}/${SOFTWARE_NAME} > /dev/null 2>&1 &
#用户自定义安装脚本 END}
##### 禁止修改##### 可在脚本开始运行时调用,打印当时的时间戳及PID,同时记录软件包进程ID到指定路径。job_start() {
if [[ -e${PROCESS_ID_PATH} ]]; thenstartProcessId=`sed  -n /"${DEPLOY_NAME}:${SOFTWARE_NAME}"/,+1p  ${PROCESS_ID_PATH} | grep -iv [a-z]`kill-9${startProcessId}sed-i /${SOFTWARE_NAME}/,+1d ${PROCESS_ID_PATH}sed-i /${SOFTWARE_NAME}/d ${PROCESS_ID_PATH}echo"old process ${startProcessId} in ${APP_HOME}, killed."fimkdir-p${APP_HOME}    user_shell
if [ $?-ne0 ]; then        exit4 #user shell failfi# 此处约束禁止删除pid=$!echo"process start success in ${APP_HOME}, pid: ${pid}."echo"${DEPLOY_NAME}:${SOFTWARE_NAME}" >> "${PROCESS_ID_PATH}"echo"${pid}" >> "${PROCESS_ID_PATH}"if [ $?-ne0 ]; then        exit3 #record process id failfi}
##### 在此函数中检查服务是否起来,可以是检查进程,curl http地址等方式check_health() {
now=$(date +'%Y-%m-%d %H:%M:%S')#自定义健康检查逻辑result=`curl http://localhost:7001/checkpreload.htm|grep success`if [[ "$result"-eq"" ]]; thenecho"[$now][$$] check_health"else        exit2 #check health failfi}
exit1() {
echo"exit code 1, install fail"exit1}
exit2() {
echo"exit code 2, check health fail"exit2}
exit3() {
echo"exit code 3, record process id fail"exit3}
exit4() {
echo"exit code 4, user shell fail"exit4}
exit5() {
echo"exit code 5, jdk not effect fail"exit5}
##### 如果返回值为0,则认为此执行成功,如果非0,则认为执行失败main() {
    job_start
    check_health
}
##### 触发执行 日志由OOS自动记录main


应用停止脚本模板


#!/bin/bash##### 可在脚本开始运行时调用,打印当时的时间戳及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.windowsC:\Users\AdministratorREM2.user_shellREM3.IDIDREM##### 如果返回值为0,则认为此执行成功,如果非0,则认为执行失败call:mainexit/b%ERRORLEVEL%REM##### 触发执行 日志由OOS自动记录REM############### 用户可修改区域 开始 ###############REM使[!!!!]:user_confSETDEPLOY_NAME=SETSOFTWARE_NAME=REM/y/nSETRETURN=ygoto:eofREMREMC:\Windows\system32REM:user_shellechoREM/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
目录
相关文章
|
监控 机器人 Shell
用shell脚本编写一个监控应用服务的脚本,外发到微信群
用shell脚本编写一个监控应用服务的脚本,外发到微信群
131 1
|
1月前
|
Java Shell
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
37 1
|
6月前
|
存储 Oracle Unix
TSM服务器日常维护简明手册--TSM启动和停止
TSM服务器日常维护简明手册--TSM启动和停止
171 0
|
Ubuntu NoSQL C++
百度搜索:蓝易云【搭建ubuntu容器内C/C++开发调试环境】
以上是搭建 Ubuntu 容器内 C/C++ 开发调试环境的一般教程。你可以根据实际需求进行进一步的定制和配置。请注意,使用容器进行开发调试可以提供一种隔离的环境,但也需要注意容器的资源限制和安全性。建议参考 Docker 官方文档和其他可靠资源,以获取更详细和特定于你的需求的指导。
54 1
|
Web App开发 弹性计算 Java
使用云助手公共命令快速安装Java环境
本场景带您体验如何使用云助手公共命令为您的ECS实例快速安装Java环境和Tomcat。
|
存储 小程序 Shell
【平台开发】技术整合思考(一)——启动配置
【平台开发】技术整合思考(一)——启动配置
114 0
|
Linux
全网独家:LINUX登录桌面后,如何自动运行自己的应用程序
全网独家:LINUX登录桌面后,如何自动运行自己的应用程序
216 0
|
Linux Windows
部署平台停止脚本编写
部署平台停止脚本编写
139 0
|
Web App开发 小程序 IDE
mPaaS 小程序新手指南 | 接入 mPaaS 小程序并实现启动
mPaaS 小程序,继承于支付宝小程序原生框架,帮助开发者面向自身的 App 实现小程序投放。不止如此,作为开发者,您的小程序代码只需撰写一次,借助 mPaaS 小程序 IDE,即可投放到自有 App 中、支付宝、钉钉甚至其他小程序开放平台。
2737 0