Linux Java Jar Shell 脚本

博文目录

文章目录


使用方式

  • ./run.sh start
  • ./run.sh stop
  • ./run.sh restart
  • ./run.sh status
#!/bin/bashJAVA_CMD="java"
APP_NAME="bid"
JAR_NAME="bid.jar"
PROFILE="develop"BASE_PATH=`cd $(dirname $0); pwd`
# 应用基础目录下的 env 文件中定义的变量
# source ${BASE_PATH}/envOPTIONS="-XX:MetaspaceSize=256M"
OPTIONS="${OPTIONS} -jar ${BASE_PATH}/${JAR_NAME}"
OPTIONS="${OPTIONS} --spring.profiles.active=${PROFILE}"echoRed() { echo $'\e[0;31m'"$1"$'\e[0m'; }
echoCyan() { echo $'\e[0;36m'"$1"$'\e[0m'; }
echoYellow() { echo $'\e[0;33m'"$1"$'\e[0m'; }[[ -z "$stopWaitTime" ]] && stopWaitTime=10getPid() {pid=`ps ax | grep -i ${JAR_NAME} | grep java | grep -v grep | awk '{print $1}'`
}start() {getPidif [ -z ${pid} ] ; thendoStartelseechoCyan "[${APP_NAME}] 正在运行 ($pid)"exit 1fi
}doStart() {echoCyan "${JAVA_CMD} ${OPTIONS}"# nohup ${JAVA_CMD} ${OPTIONS} > ${BASE_PATH}/start.out/dev/null 2>&1 &nohup ${JAVA_CMD} ${OPTIONS} > /dev/null 2>&1 &# 等待启动startCounter=0 # 记录等待次数while [ -z ${pid} ]dosleep 1startCounter=`expr $startCounter + 1`echoCyan "[${APP_NAME}] 启动中, ${startCounter}..."getPidif [ "$startCounter" -ge $stopWaitTime ];thenpid=""fidone# 输出启动结果if [ -z ${pid} ] ; thenechoRed "[${APP_NAME}] 启动失败"elseechoCyan "[${APP_NAME}] 已启动 ($pid)"fi
}restart() {stop && start
}stop() {getPid#是否在运行if [ -z ${pid} ] ; thenechoYellow "[${APP_NAME}] 未在运行"exit 0;fi#停止服务echoCyan "[${APP_NAME}] 正在运行 (${pid})"kill ${pid} #&#等待kill没有效果,去掉#kpid=$!#wait $kpid#等待停止stopCounter=0getPidwhile [ ${pid} ] ; dosleep 1stopCounter=`expr $stopCounter + 1`echoCyan "[${APP_NAME}] 停止中, ${stopCounter} 秒 ..."getPidif [ "$stopCounter" -ge $stopWaitTime ];thenechoCyan "[${APP_NAME}] 强制停止 ..."kill -9 ${pid}fidone#输出结果getPidif [ -z ${pid} ] ; thenechoCyan "[${APP_NAME}] 已停止"elseechoRed "[${APP_NAME}] 停止失败"fi
}status() {getPidif [ -z ${pid} ] ; thenechoYellow "[${APP_NAME}] 未在运行"exit 0elseechoCyan "[${APP_NAME}] 正在运行 ($pid)"exit 0fi
}case "$1" in'start')start;;'stop')stop;;'restart')stopstart;;'status')status;;*)echo "Usage: $0 { start | stop | restart | status }"exit 1;;
esacexit 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/227813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序(二) ——模版语法1

文章目录 wxml模板语法拼接字符数据绑定 wxml模板语法 拼接字符 <image src"{{test1src}}" mode""/>数据绑定 在data中定义数据&#xff0c;吧数据定义到data对象中在wxml中使用数据不论是绑定内容还是属性都是用 {{}} 语法 动态绑定内容 *声明…

RocketMQ源码 Broker-SubscriptionGroupManager 订阅组管理组件源码分析

前言 SubscriptionGroupManager 继承了ConfigManager配置管理组件&#xff0c;拥有将内存数据持久化到磁盘文件subscriptionGroup.json的能力。它主要负责维护所有消费组在内存中的订阅数据。 源码版本&#xff1a;4.9.3 源码架构图 核心数据结构 主要的数据结构比较简单&am…

【PostgreSQL】从零开始:(二)PostgreSQL下载与安装

【PostgreSQL】从零开始:&#xff08;二&#xff09;PostgreSQL下载与安装 Winodws环境下载与安装PostgreSQL下载PostgreSQL安装PostgreSQL1.登录数据库2.查看下我们已有的数据库 Liunx环境下载与安装PostgreSQL使用YUM下载安装PostgreSQL1.下载PostgreSQL安装包2.安装PostgreS…

【漏洞复现】CVE-2023-47261 Dokmee ECM信息泄露致远程命令执行

漏洞描述 Dokmee ECM是一款国外企业内容管理 (ECM) 软件。每个公司的办公室每个角落都存放着文档、记录和档案。Dokmee 一系列解决方案可以帮助您高效地组织、保护和管理这些文件。支持的文件:PDF、TIFF、Word、Excel、Auto-CAD 绘图、电子邮件等。Dokmee 可以帮助您立即实现…

c#_sqlserver_三层架构winform学生信息管理及选课系统

基本功能包括管理员登录、注册学生账号、删除学生信息、查找学生信息、发布课程、修改课程、删除课程等。 教师端 登录&#xff1a;管理员登陆&#xff0c;拥有相应账号即可登录&#xff08;后台注册&#xff09;。注册学生账号&#xff1a;管理员可给学生分配学号&#xff0…

加权准确率WA,未加权平均召回率UAR和未加权UF1

加权准确率WA&#xff0c;未加权平均召回率UAR和未加权UF1 1.加权准确率WA&#xff0c;未加权平均召回率UAR和未加权UF12.参考链接 1.加权准确率WA&#xff0c;未加权平均召回率UAR和未加权UF1 from sklearn.metrics import classification_report from sklearn.metrics impor…

response.setcontenttype用法详解

response.setcontenttype用法详解 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一起来探讨一下在Java Web开发中常用的response.setConten…

2018年AMC8数学竞赛真题的典型考点和详细解析

从战争中学习战争最有效。前几天&#xff0c;六分成长分析了2023年、2022年、2020、2019年的AMC8的典型考题、考点和详细答案解析。今天继续为大家分享2018年的AMC8的五道典型考题。 欢迎您查看历史文章了解之前各年的真题解析&#xff0c;本系列会持续更新&#xff0c;直到大家…

【2.5w字吐血总结 | 新手必看】全网最详细MySQL笔记

写在前面 鉴于全网MySQL知识点的总结分散难懂、良莠不齐&#xff0c;为了避免初学者少走弯路&#xff0c;更好更快地掌握MySQL知识&#xff0c;博主特地将自己所学的笔记分享出来。 如果想深度理解掌握MySQL&#xff0c;欢迎订阅专栏&#xff1a;MySQL进阶之路【秋说】&#…

王世军:铁笔翰墨染丹青 九峰冠华传千古

鸡是十二生肖中一员&#xff0c;在民间过年时常被剪成窗花&#xff0c;贴于窗户大门上。为表达人们对鸡的喜爱&#xff0c;将正月初一定为“鸡日”&#xff0c;鸡谐音“吉”&#xff0c;意为大吉大利&#xff0c;讨个好彩头。鸡又为“五德之君”&#xff0c;鸡的五德谓之文、武…

【改进YOLOv8】生猪胖瘦评价分级系统:可重参化EfficientRepBiPAN优化Neck

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义&#xff1a; 随着计算机视觉和深度学习的快速发展&#xff0c;目标检测成为了计算机视觉领域的一个重要研究方向。目标检测的目标是在图像或视频中准确地识别和定…

swing快速入门(十五)

注释很详细&#xff0c;直接上代码 上一篇 新增内容 1.文件对话框&#xff08;保存文件&#xff09; 2.文件对话框&#xff08;打开文件&#xff09; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class swing_tes…

Linux 中使用 docker 安装 Elasticsearch 及 Kibana

Linux 中使用 docker 安装 Elasticsearch 及 Kibana 安装 Elasticsearch 和 Kibana安装分词插件 ik_smart 安装 Elasticsearch 和 Kibana 查看当前运行的镜像及本地已经下载的镜像&#xff0c;确认之前没有安装过 ES 和 Kibana 镜像 docker ps docker images从远程镜像仓库拉…

京东大数据-10月京东咖啡机市场销售数据分析-销售额增长41%,德龙等海外头部品牌店铺数据分析

如今&#xff0c;咖啡已经成为了人们日常生活中流行的生活饮品之一&#xff0c;消费量较大。随着咖啡的受众人群越来越多&#xff0c;消费者们对咖啡品质的要求也愈来愈高&#xff0c;而咖啡品质除了受咖啡豆质量影响外&#xff0c;还受制作过程中煮泡时间、水温和物料数量等因…

【学习笔记】Linux(基础知识)

第1章 Linux概况 1.1 Linux起源 四个重要的支柱: ①Unix操作系统; ②Minix操作系统; ③GNU计划; ④Internet网络。 1. Unix操作系统 UNIX的诞生 1971年,用汇编语言首先开发成功16位UNIX系统 1973年,用C语言重写了UNIX系统 创始人:Ken Thompson & Dennis Ritch…

KSP实战-使用ksp AutoService为SPI自动生成配置文件

AutoService AutoService KSP annotation processor 简介 AutoService是自动为Service Provider Interface&#xff08;SPI&#xff09;生成 META-INF/services 配置的高性能KSP注解处理器插件&#xff1b; 效果如图&#xff1a; 背过Java面试题的应该都知道SPI&#xff0c…

牛客小白月赛83

A-小天的金银铜铁_牛客小白月赛83 (nowcoder.com) AC代码: #include<bits/stdc.h> #define endl \n //#define int long long using namespace std; int a,b,c,d,e; int A,B,C,D; void solve() {cin>>a>>b>>c>>d>>e;cin>>A>>…

【c语言】【visual studio】动态内存管理,malloc,calloc,realloc详解。

引言&#xff1a;随着大一期末的到来&#xff0c;想必许多学生都学到内存的动态管理这一部分了&#xff0c;看望这篇博客后&#xff0c;希望能解除你心中对这一章节的疑惑。 (・∀・(・∀・(・∀・*) 1.malloc详解 malloc的头文件是#include <sdtlib.h>,malloc - C Ref…

【C语言】——认识指针变量和地址,以及指针变量类型的意义

&#x1f3a5; 岁月失语唯石能言的个人主页 &#x1f525;个人栏专&#xff1a;秒懂C语言 ⭐若在许我少年时&#xff0c;一两黄金一两风 目录 前言 一、指针变量和地址 1.1 取地址操作符&#xff08;&&#xff09; 1.2 指针变量和解引用操作符&#xff…

Linux上使用HTTP协议进行数据获取的实战示例

嗨&#xff0c;Linux爱好者们&#xff0c;今天我们要一起探讨一下如何在Linux上进行HTTP协议的数据获取。这不是一项简单的任务&#xff0c;但放心&#xff0c;我会以最简单的语言&#xff0c;结合实例来给大家讲解。 首先&#xff0c;我们需要一个工具&#xff0c;那就是curl…