jar脚本练习
javaServer.sh
#!/bin/bash
export JAVA_HOME=/u01/java_home/jdk1.8.0_131
export APP_HOME=/u01/app
export APP_NAME=test.jar
export PROG=test
function getPid {
PID=`ps -ef | grep $APP_HOME/$APP_NAME | grep -v grep | awk '{print $2}'|awk 'NR==1'`
}
if test ! -d "logs"
then
mkdir "logs"
fi
getPid
case $1 in
start)
if [ ! $PID ];then
nohup $JAVA_HOME/bin/java -jar $APP_HOME/$APP_NAME >> $APP_HOME/logs/catalina.`date +%Y-%m-%d`.out 2>&1 &
echo "starting"
sleep 1
getPid
echo -e "$PROG is \033[32mActive\033[0m, PID = $PID"
else
echo "$PROG is exist, PID = $PID"
fi
;;
stop)
if [ $PID ];then
kill -15 $PID
echo "stoping..."
sleep 1
getPid
echo -e "$PROG is \033[31mDead\033[0m"
else
echo "$PROG is not exist"
fi
;;
restart)
echo "restarting..."
if [ $PID ];then
kill -15 $PID
sleep 3
nohup $JAVA_HOME/bin/java -jar $APP_HOME/$APP_NAME >> $APP_HOME/logs/catalina.`date +%Y-%m-%d`.out 2>&1 &
getPid
echo -e "$PROG is \033[32mRestart\033[0m, PID = $PID"
else
nohup $JAVA_HOME/bin/java -jar $APP_HOME/$APP_NAME >> $APP_HOME/logs/catalina.`date +%Y-%m-%d`.out 2>&1 &
sleep 1
getPid
echo -e "$PROG is \033[32mRestart\033[0m, PID = $PID"
fi
;;
init)
echo "init $(basename $0) scripts..."
SET_APP_HOME=`pwd`
echo "set APP_HOME=`pwd`"
read -p "change jar APP home (yes|no)?" INPUT
while true ;do
case $INPUT in
y|yes|'')
sed -i "s#^export APP_HOME=$APP_HOME#export APP_HOME=$SET_APP_HOME#g" $0
break
;;
n|no)
echo "APP_HOME=$APP_HOME"
break
;;
*)
echo -n "Input ERROR,please input yes or no? "
read INPUT
;;
esac
done JAR_NUM=$(find $(pwd) -name "*.jar"|wc -l)
if test $JAR_NUM -eq 1;
then
SET_APP_NAME=$(basename $(find $(pwd) -name "*.jar"))
echo "set APP_NAME=$SET_APP_NAME"
read -p "change jar APP name (yes|no)?" INPUT
while true ;do
case $INPUT in
y|yes|'')
sed -i "s#^export APP_NAME=$APP_NAME#export APP_NAME=$SET_APP_NAME#g" $0
break
;;
n|no)
echo "APP_NAME=$APP_NAME"
break
;;
*)
echo -n "Input ERROR,please input yes or no? "
read INPUT
;;
esac
done
else
echo "jar app numer=$JAR_NUM is ERROR! please check."
fi
;;
*)
echo "Usage:{$0 start|stop|restart}"
;;
esac
exit 0
jar脚本练习的更多相关文章
- shell运行java/Jar 脚本
1.Shell执行/调用Java/Jar程序 #!/bin/bash JAVA_HOME="$HOME/jdk" BASE_DIR=`dirname $0` if [ " ...
- 在crontab中执行shell脚本的问题
crontab中记录的编写比较简单,下面是一个示例: * * * /app/tpssapp/ftpsrc/tools/statTables/statTables.sh > /app/tpssap ...
- spring boot jar 部署linux服务器
用命令启动spring boot 项目,一旦终端命令窗口关闭,项目也就关闭了,所以我们采用脚本的方式来运行jar 正常命令 java -jar xxx.jar 脚本启动,vim 创建 start.sh ...
- 在linux中部署项目并创建shell脚本
1.首先要在idea中父工程maven包下执行clean生成的target包 2.执行package打包,打包时候讲test勾去掉 3.将target包中生成的jar包cp出来 此处注意打包时必须要保 ...
- Jenkins自动打包并部署(以java -jar形势运行)
1.打包 与平常maven项目打包一致,不再赘述 2.杀死原有进程 通过 pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` 获取当前 ...
- linux 部署jar包开机自启
1.用xShell将jar包上传到linux上(jar包上传到 /root/java) 输入rz命令,看是否已经安装了lrzsz,如果没有安装则执行 yum -y install lrzsz ...
- Android apk的安装、卸载、更新升级(通过Eclipse实现静默安装)
一.通过Intent消息机制发送消息,调用系统应用进行,实现apk的安装/卸载 . (1) 调用系统的安装应用,让系统自动进行apk的安装 String fileName = "/data/ ...
- 详细版在虚拟机安装和使用hadoop分布式集群
集群模式: 一台master 192.168.85.2 一台slave 192.168.85.3 jdk jdk1.8.0_74(版本不重要,看喜欢) hadoop版本 2.7.2(版本不重要,2. ...
- hadoop 把mapreduce任务从本地提交到hadoop集群上运行
MapReduce任务有三种运行方式: 1.windows(linux)本地调试运行,需要本地hadoop环境支持 2.本地编译成jar包,手动发送到hadoop集群上用hadoop jar或者yar ...
- hadoop本地运行与集群运行
开发环境: windows10+伪分布式(虚拟机组成的集群)+IDEA(不需要装插件) 介绍: 本地开发,本地debug,不需要启动集群,不需要在集群启动hdfs yarn 需要准备什么: 1/配置w ...
随机推荐
- Python:编程“八荣八耻”之我见
刚在逛CPyUG时看到了个主题讨论python的八荣八耻,见:http://bit.ly/4jeBor, 主题内容如下: 以动手实践为荣,以只看不练为耻. 以打印日志为荣,以单步跟踪为耻. 以空白 ...
- 在vue2中按顺序调用多个接口,接收返回数据
最近有一个点一个按钮调用多个接口,并且按顺序串行调用,根据后端返回的逻辑,区分接口之间的串行关系,前面的接口失败是否继续执行下面接口,有两种方式,都是循环调用接口,实现方式有点差别 第一种reduce ...
- Mybatis【12】-- Mybatis多条件怎么查询?
很多时候,我们需要传入多个参数给sql语句接收,但是如果这些参数整体不是一个对象,那么我们应该怎么做呢?这里有两种解决方案,仅供参考. 1.将多个参数封装成为Map 测试接口,我们传入一个Map,里面 ...
- ThreeJs-04详解材质与纹理
一.matcap材质 这个材质不会受到光照影响,但是如果图片本身有光就可以一直渲染这个图片本来的样子,用来将一个图片纹理渲染到物体上的材质 代码实现 加载模型后,开启纹理渲染,并把它的材质变为这个材质 ...
- MySQL底层概述—4.InnoDB数据文件
大纲 1.表空间文件结构 (1)表空间Tablesapce (2)段Segment (3)区Extend (4)页Page (5)行Row 2.Page结构 (1)页结构各部分说明 (2)页结构整体划 ...
- GPU 驱动漏洞:窥探驱动漏洞利用的技术奥秘
GPU 驱动漏洞:窥探驱动漏洞利用的技术奥秘 本文尝试以 GPU 漏洞为引介绍围绕 GPU 驱动这一攻击面,安全研究人员对内核漏洞利用技术做的一些探索. 背景介绍 目前移动 SOC 平台上由多个硬件模 ...
- openEuler欧拉安装Docker
1. dnf配置 # 更新镜像源缓存 dnf makecache # 修改chrony时间同步配置 sed -i 's/pool pool.ntp.org iburst/pool ntp.aliyu ...
- 如何使用图片压缩降低COS流量成本?
导语 本文将介绍如何通过[图片压缩]能力,让您降本增效的使用 COS ,文章将写得浅显易懂,旨在快速带领用户了解图片压缩的用法及带来的收益. **** 图片压缩为什么会让您降本增效?******** ...
- 零售经营“新赛道” ——基于手机银行APP专区调研的客群精细化运营分析报告
随着银行业竞争的不断深入及新客户增量日渐"到顶",各家银行的客群竞争逐渐由"跑马圈地"进入"精耕细作"的新阶段,在客群精准化服务方面不断 ...
- 【NAS】Docker Gitea+SakuraFrp+绿联DPX4800标 搭建私有代码托管平台
本文主要分享 Gitea的一些设置,和Https的实现. Gitea的一些设置 映射 网络 HTTPS的实现 先准备好一个域名,建议准备一个1Panel 创建一个AC账户然后点击申请证书,手动解析. ...