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

简介: 麒麟部署平台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脚本编写一个监控应用服务的脚本,外发到微信群
146 1
|
4月前
|
Java Shell
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
58 1
|
2月前
|
监控 安全
公司用什么软件监控电脑:Lua 脚本在监控软件扩展功能的应用
在企业环境中,电脑监控软件对保障信息安全、提升效率至关重要。Lua 脚本在此类软件中用于扩展功能,如收集系统信息、监控软件使用时长及文件操作,向指定服务器发送数据,支持企业管理和运营。
51 6
|
7月前
|
人工智能 Shell Python
福利来了!MoneyPrinterPlus可以自动配置环境和自动运行了
给小白用户提供一个方便的环境设置脚本和自动运行脚本,让不懂程序的人也能用上MoneyPrinterPlus
福利来了!MoneyPrinterPlus可以自动配置环境和自动运行了
|
8月前
|
Ubuntu 安全 Linux
创建并使用自定义的Linux命令`autoupdate`来自动化软件更新
创建自定义Linux命令`autoupdate`简化系统更新流程。通过编写包含`apt update`, `apt upgrade`, `apt autoremove`和`apt clean`的bash脚本,实现一键自动化更新。将脚本添加到PATH环境变量,确保在任意目录可执行。适用于基于Debian/Ubuntu系统,其他发行版需调整命令。记得备份数据,必要时重启系统,并可按需扩展脚本功能。
|
9月前
|
存储 Oracle Unix
TSM服务器日常维护简明手册--TSM启动和停止
TSM服务器日常维护简明手册--TSM启动和停止
218 0
|
9月前
|
Linux
Linux常用脚本应用服务检查脚本
Linux常用脚本应用服务检查脚本
40 0
|
监控 Shell 持续交付
编写Shell脚本以自动化单位网络监控软件的部署和配置
在今天的数字化世界中,网络监控软件已经成为确保网络稳定性和安全性的不可或缺的工具。然而,手动部署和配置这些软件可以是一项繁琐的任务。本文将介绍如何使用Shell脚本自动化这一过程,以便轻松监控网络,并讨论如何将监控数据自动提交到网站。
293 0
|
存储 小程序 Shell
【平台开发】技术整合思考(一)——启动配置
【平台开发】技术整合思考(一)——启动配置
119 0
|
Shell Linux BI
Linux基础服务巡检脚本模板
Linux基础服务巡检脚本模板 收集的一个没有自动化巡检工具的时候,的每日巡检工具, 测试了支持Redhat, Ubuntu能用,单少部分部分命令出错。 结果能看。
2199 0