Linux jar包服务启动停止shell脚本
技术积累 Linux Shell

以Java的jar包服务为例,启动停止带服务检查的shell脚本,提供单个服务启动停止 和 多个服务同时启动停止,
最简单脚本几行就可以了,启动[ java 启动参数 -jar xxx.jar ],停止 [找到pid,kill掉],我这个脚本就是加了点判断和颜色输出

使用:需要修改 jdk路径、包目录、项目名、包名
例如:jar包完整名称为:test-web.jar,[test]就是项目名,[web]就是包名,自定义修改即可

#!/bin/bash
# jdk
jdk="jdk路径"
# 项目名
pjname="xxxxxx"
# jar包目录
dir="/java/$pjname"
# 多个jar包名称
jar1="xxx"
jar2="xxx"
jar3="xxx"
jar4="xxx"
alljar="$jar1 $jar2 $jar3 $jar4"
# 成功
success(){
echo -e "\033[32m[$pjname-$1]服务$2\033[0m"
}
# 失败
fail(){
echo -e "\033[31m[$pjname-$1]服务$2\033[0m"
}
# 警告
waring(){
echo -e "\033[33m 请输入正确的要${1}的服务名称:[ $jar1 | $jar2 | $jar3 | $jar4 ]\n 如果要${1}所有服务请使用: all\033[0m"
}
# 提示
tips(){
echo -e "\033[36m请输入正确的参数:[ start | stop ]\033[0m"
}
# 服务检查
started(){
jps|grep $pjname-$1 && success $1 已在运行中 && $2
}
verifysa(){
started $1 continue
}
verifys(){
started $1 exit
}
# 服务检查
killed(){
ps -ef |grep -v "grep"|grep "$pjname-$1"|awk '{print $2}'|xargs kill -9 >/dev/null 2>&1 && success $1 停止成功|| fail $1 未启动 && $2
}
verifyt(){
killed $1 exit
}
verifyta(){
killed $1 continue
}
# 启动后验证
verify() {
jps|grep $pjname-$1 && success $1 ${2}成功 || fail $1 ${2}失败
}
# 启动
starting(){
$jdk -jar $dir/$pjname-$1.jar >/dev/null 2>&1 &
verify $1 启动
}
# 停止
stoping(){
ps -ef |grep -v "grep"|grep "$pjname-$1"|awk '{print $2}'|xargs kill -9 >/dev/null 2>&1
verify $1 停止
}
# 执行
case $1 in
start)
if [[ $2 = $jar1 || $2 = $jar2 || $2 = $jar3 || $2 = $jar4 ]];then
verifys $2
starting $2
elif [[ $2 = all ]];then
for i in $alljar;do verifysa $i;starting $i;done
else
waring 启动
fi
;;
stop)
if [[ $2 = $jar1 || $2 = $jar2 || $2 = $jar3 || $2 = $jar4 ]]
then
verifyt $2
stoping $2
elif [[ $2 = all ]];then
for i in $alljar;do verifyta $i;stoping $i;done
else
waring 停止
fi
;;
*)
tips
;;
esac

脚本执行效果图

启动服务

Linux jar包服务启动停止shell脚本

停止服务

Linux jar包服务启动停止shell脚本


本文最后记录时间 2024-03-30
文章链接地址:
https://me.jinchuang.org/archives/1153.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处
Win11安装使用Linux子系统遇到的问题
统计文本中每个字符出现的次数
Nali 离线ip数据库文件
苹果CMS v10内容管理系统搭建

pip 安装错误 Command "python setup.py egg_info" failed with error code

Kubeadm 初始化时候报的警告信息 detected "cgroupfs" as the Docker cgroup driver ···

留言列表

  1. wllen
    Windows 10 Microsoft Edge
    中国上海电信 ◀网络运营商

    这特效浏览太占用资源了

    1. Awking
      Windows 10 Google Chrome
      中国上海电信 ◀网络运营商

      ? 我电脑浏览器打开都是很顺畅没啥问题,所以就开了

      1. wllen
        Windows 10 Microsoft Edge
        中国天津电信 ◀网络运营商

        流畅度没问题,就是浏览器整体负载上来了

留言

嗨!朋友 · 欢迎来访
顶部