项目jar包启动的命令

当我们在linux系统里某个路径下创建了许多个jar包的文件夹后,我们可以通过 java -jar 命令脚本可以快速的启动我们的jar包以及实现全部启动及全部结束jar进程。

1.在linux系统中jar包存放位置

/opt/services/providers路径下是各个jar包存放的文件夹,同时将service.sh文件放入在该路径下,通过启动命令:
./service.sh start channeldemand 即可启动 YL-B-Channel-Demand-Provider.jar 包
channeldemand是 YL-B-Channel-Demand-Provider.jar在service.sh中配置的别名

如果需要启动该目录下的所有jar包,通过命令即可启动所有jar包:
./service.sh start all

2.service.sh中启动jar包具体的配置

只需要更改1.程序代码数组:每个jar包起别名 2.程序名称数组:具体每个jar包具体的名称 3.jar包数组:具体的jar包 4.jar包路径数组:jar包所在的路径地址。5.PROJECTDIR属性:具体的jar包文件夹所在路径,/opt/services/providers/KaTeX parse error: Expected '}', got 'EOF' at end of input: {PATHS[i]}。
修改这5个地方即可实现jar包配置。

#!/bin/bash
#####################################################Environment Setting########################################################程序代码数组
APPS=(channelweb channelcorp channeldemand channelresume channeluser omsweb omscode omscorp omsdemand omsuser omszull oss publicweb search)#程序名称数组NAMES=(YL-B-Channel-WEB YL-B-Channel-Corp-Provider YL-B-Channel-Demand-Provider YL-B-Channel-Resume-Provider YL-B-Channel-User-Provider YL-B-BOS-WEB YL-B-Code-Provider YL-B-Corp-Provider YL-B-Demand-Provider YL-B-User-Provider YL-B-Zull YL-B-OSS-Provider YL-B-Public-WEB YL-B-Search-Provider)#jar包数组JARS=(YL-B-Channel-WEB.jar YL-B-Channel-Corp-Provider.jar YL-B-Channel-Demand-Provider.jar YL-B-Channel-Resume-Provider.jar YL-B-Channel-User-Provider.jar YL-B-BOS-WEB.jar YL-B-Code-Provider.jar YL-B-Corp-Provider.jar YL-B-Demand-Provider.jar YL-B-User-Provider.jar YL-B-Zull.jar YL-B-OSS-Provider.jar YL-B-Public-WEB.jar YL-B-Search-Provider.jar)#jar包路径数组PATHS=(BM-B-Channel-WEB BM-B-Channel-Corp-Provider BM-B-Channel-Demand-Provider BM-B-Channel-Resume-Provider BM-B-Channel-User-Provider BM-B-BOS-WEB BM-B-Code-Provider BM-B-Corp-Provider BM-B-Demand-Provider BM-B-User-Provider BM-B-Zull BM-B-OSS BM-B-Public-WEB BM-B-Search-Provider)start(){
local APPNAME=
local NAME=
local CLASSNAME=
local PROJECTDIR=
local command="sh service.sh start"
local cmd2="$1"
local cmd2ok=0
local cnt=0
local okcnt=0
local PATH_LOG=
#local C_PID="0"
#for i in `seq 0 22`
echo "---------------------------开始启动服务..."
for(( i=0;i<${#APPS[@]};i++))
do
APPNAME=${APPS[$i]}
NAME=${NAMES[$i]}
CLASSNAME=${JARS[$i]}
PROJECTDIR=/opt/services/providers/${PATHS[$i]}
PATH_LOG=/opt/logs/$NAME
if [ "$cmd2" == "all" ] || [ "$cmd2" == "$APPNAME" ]; then
cmd2ok=1
C_PID="0"
cnt=0
#ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read pid
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
#do
#C_PID=$(ps --no-heading $pid | wc -l)
#if [ "$C_PID" == "1" ]; then
if [ -n "$PID" ]
then
echo "$APPNAME---$NAME:己经运行,PID=$PID"
#okcnt=$(($okcnt+1))
else
cd $PROJECTDIR
rm -f $PROJECTDIR/$nohup.out
command="nohup java -jar-XX:MetaspaceSize=256m \-XX:MaxMetaspaceSize=256m \-Xms512m \-Xmx512m \-Xmn256m \-Xss256k \-XX:SurvivorRatio=8 \-XX:+UseConcMarkSweepGC \$CLASSNAME"
exec $command >> $PROJECTDIR/nohup.out 2>&1 &
#ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read pid
#do
# C_PID=$(ps --no-heading $pid | wc -l)
#done
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
cnt=0
#while (("$C_PID" == "0"))
while [ -z "$PID" ]
do
if (($cnt==30))
then
echo "$APPNAME---$NAME:$cnt秒内未启动,请检查!"
break
fi
cnt=$(($cnt+1))
sleep 1s
#ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read pid
#do
# C_PID=$(ps --no-heading $pid | wc -l)
#done
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
done
okcnt=$(($okcnt+1))
echo "$APPNAME---$NAME:己经成功启动,PID=$PID"
#出借模块和总装模块启动较慢
if [ "$APPNAME" == "deal" ] ;
then
echo "$APPNAME---$NAME:启动中..."
sleep 30s
fi
if [ "$APPNAME" == "dispatch" ] ;
then
echo "$APPNAME---$NAME:启动中..."
sleep 10s
fi
fi
#done
fi
done
if (($cmd2ok==0))
then
echo "command2: all|channelweb|channelcorp|channeldemand|channelresume|channeluser|omsweb|omscode|omscorp|omsdemand|omsuser|omszull"
else
echo "---------------------------本次启动:$okcnt个服务"
fi
}stop(){
local APPNAME=
local CLASSNAME=
local PROJECTDIR=
local command="sh service.sh stop"
local cmd2="$1"
local cmd2ok=0
#local C_PID="0"
local okcnt=0
echo "---------------------------开始停止服务..."
for(( i=0;i<${#APPS[@]};i++))
do
APPNAME=${APPS[$i]}
NAME=${NAMES[$i]}
CLASSNAME=${JARS[$i]}
PROJECTDIR=/opt/services/providers/${PATHS[$i]}
if [ "$cmd2" == "all" ] || [ "$cmd2" == "$APPNAME" ]; then
cmd2ok=1
#ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read PID
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
#do
#C_PID=$(ps --no-heading $PID | wc -l)
#if [ "$C_PID" == "1" ]; then
if [ -n "$PID" ]
then
echo "$NAME:PID=$PID准备结束"
kill $PID
#C_PID=$(ps --no-heading $PID | wc -l)
#while (("$C_PID" == "1"))
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
while [ -n "$PID" ]
do
sleep 1s
#C_PID=$(ps --no-heading $PID | wc -l)
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
done
echo "$NAME:成功结束"
okcnt=$(($okcnt+1))
else
echo "$NAME:未运行"
fi
#done
fi
done
if (($cmd2ok==0))
then
echo "command2: all|channelweb|channelcorp|channeldemand|channelresume|channeluser|omsweb|omscode|omscorp|omsdemand|omsuser|omszull"
else
echo "---------------------------本次共停止:$okcnt个服务"
fi
}case "$1" in
start)
start "$2"
exit 1
;;
stop)
stop "$2"
;;
restart)
stop "$2"
start "$2"
;;
*)
echo "command1: start|stop|restart"
exit 1
;;
esac
3. 通过 nohup java -jar jar名 & 启动jar包

进入到jar包所在的文件夹下通过
tail -fn 200 nohup.out 可以查看相关jar包的启动日志。

java -jar -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xms512m -Xmx512m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC YL-B-Channel-Demand-Provider.jar &

项目jar包启动的命令相关推荐

  1. 使用Nacos项目jar包启动抛出的yml异常

    记录一下项目jar包启动时一直抛出nacos yml编译错误的问题 一开始抛出yml的问题,是编码问题,但是又不知道Nacos里怎么配置编码格式. 所以我只能把nacos中配置文件里的注释含泪删除调试 ...

  2. jar包启动基础命令

    一般情况下运行jar包,当前是可运行的jar包,直接命令 java -jar common.jar 按下ctrl+C ,关闭当前ssh或者直接关闭窗口,当前程序都会退出. 我们在命令的结尾添加 &qu ...

  3. springboot项目jar包启动脚本

    当工具用习惯了.也就懒的去关心底层的东西了.项目部署的时候,用习惯了jenkins也就不关心运维写的脚本了.但是当工具出问题,那就要从最基础的脚本来部署项目.脚本我也不太懂,在这里只是与大家一起分享启 ...

  4. java jar 启动项目,SpringBoot项目运行jar包启动的步骤流程解析

    SpringBoot项目在开发中,方便快捷,有一点原因就是SpringBoot项目可以打jar包运行:把jar包直接扔服务器上,然后运行jar包就能访问项目接口了.下面介绍SpringBoot项目打j ...

  5. 关于SpringBoot项目通过jar包启动之后无法读取项目根路径静态资源

    前言:这个是昨天晚上在部署一个项目的时候发现的,在此记录一下 关于SpringBoot项目通过jar包启动之后无法读取项目根路径静态资源 问题描述 在部署了一个项目之后,打开项目页面进行测试,发现有一 ...

  6. SpringBoot项目运行jar包启动

    本文来说下SpringBoot项目运行jar包启动 文章目录 概述 概述

  7. 由提交storm项目jar包引发对jar的原理的探索

    序:在开发storm项目时,提交项目jar包当把依赖的第三方jar包都打进去提交storm集群启动时报了发现多个同名的文件错误由此开始了一段对jar包的深刻理解之路. java.lang.Runtim ...

  8. jenkins 自动化远程部署——部署war包,jar包的bat命令

    目录 1. 部署war包bat @rem 停止在运行的tomact D: cd D:\Program Files\apache-tomcat\bin call shutdown.battitle my ...

  9. pom 的第三方jar报错_01_maven-将第三方jar包一起打包到项目 jar 包中

    前言:maven-将依赖的 jar包一起打包到项目 jar 包中 有时候在项目开发中,需要很多依赖的 jar 包,其中依赖的 jar 包也会依赖其他的 jar 包,导致jar 包的管理很容易不全. 如 ...

  10. 通过helloworld程序分析springboot的jar包启动过程

    写在前面 源码这里.本文分析的是通过java -jarjar包方式启动,关于直接运行main函数启动过程可以参考这里. 1:创建helloworld程序 1.1:创建maven项目 file-> ...

最新文章

  1. github组织存储库使用_为什么我不使用您的GitHub存储库
  2. 网口相机设置自动复位时间(心跳时间)
  3. python保存文件到指定文件夹_python实现指定文件夹下的指定文件移动到指定位置...
  4. linux crontab不运行,Linux运维知识之解决Linux中crontab不执行ntpdate问题
  5. 小程序 封装table组件
  6. matplotlib坐标设置(笔记二)
  7. 2014-3-16 星期天 晴[改变生活规律,稳中求进]
  8. 百度下半年惩罚网站的低质量,坏消息到来硕士
  9. 西门子PCS7常见报警及故障说明
  10. git报错warning: Clone succeeded, but checkout failed
  11. domoticz添加和风天气,让domoticz显示天气信息
  12. 记录一次重装win10系统后,没有1920*1080分辨率的问题
  13. JAVA中类、对象、方法之间的关联关系
  14. 中国计量大学计算机专业全国名次多少,中国计量大学实力水平如何,全国排名是多少?...
  15. 2022最新Emlog新版导航源码 带用户中心
  16. [云炬学英语]每日一句2020.8.30
  17. notepad++设置中文刷新后还是英文解决方法
  18. 数据分析是什么?数据分析的现状是什么?
  19. 2021年低压电工考试题及低压电工模拟考试软件
  20. [全国牙防组]事件-惊!两个人两张桌忽悠了13亿人

热门文章

  1. 【进程管理】在如下所示的进程资源图中,(27);该进程资源图是(28)。
  2. 【实用网址】:平常用不到,想用的时候找不到
  3. 项目实战之电子商城数据库源码
  4. HTML5气泡悬浮框(已经加上完整文件)
  5. 华为最强科普:什么是DSP?
  6. pyhton爬虫爬取100首诗
  7. pytorch训练过程中内存一直慢慢增长直到爆
  8. 并行运算遇到的fatal error(已解决)
  9. 计算机网络和internet选项,internet选项在哪
  10. vim设置(非常全面),即.vimrc文件的配置