启动:

#!/bin/bash
set -e
JAVA_HOME=/usr/local/java
# 检查是否有项目名
appName=$
if [ "$appName" == "" ];then
echo "appName is needed!" >&
exit
fi

# 输出脚本所在的真正目录,存储到变量中
bin_abs_path=$(readlink -f $(dirname $))
base=${bin_abs_path}/.. echo "start application $appName ..." >&2 # 检查pid文件是否存在
if [ -f $bin_abs_path/$appName.pid ] ; then
echo "found $appName.pid , Please run stop-ndb.sh first ,then startup-ndb.sh" >&
exit
fi # 启动项目
JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:-UseGCOverheadLimit -XX:MaxPermSize=128m -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Duser.language=zh -Duser.region=CN -Duser.timezone=Asia/Shanghai"
APP_OPTS="-DappName=$appName -Dspring.profiles.active=envProd"
nohup $JAVA_HOME/bin/java $JAVA_OPTS $APP_OPTS -jar $base/app/$appName.jar 1>/dev/null 2>/dev/null &
sleep 20
# 记录Shell最后运行的后台Process的PID
echo $! > $bin_abs_path/$appName.pid
echo "start application $appName success!" >&

停止:

#!/bin/bash
set -e
# 检查是否有项目名
appName=$
if [ "$appName" == "" ];then
echo "appName is needed!" >&
exit
fi
# 输出脚本所在的真正目录,存储到变量中
bin_abs_path=$(readlink -f $(dirname $))
base=${bin_abs_path}/..
# 检查jar包是否存在
if [ ! -e "$base/app/$appName.jar" ];then
echo "$base/$appName.jar is not found!" >&
exit
fi
# 得到对应的进程id的函数
getapp_pid() {
JAVA_PID=`ps -C java -f --width |grep "$appName"|grep -v grep|awk '{print $2}'`
echo $JAVA_PID;
}
echo "stop application $appName ..." >&
# 确定pid
pidfile=$base/bin/$appName.pid
pid="";
if [ -f $pidfile ];then
pid=`cat $pidfile`
fi
#若有没有相应的pid文件,将通过查询程序名称的进程获得;
if [ "$pid" == "" ];then
pid=`getapp_pid "appName=$appName"`
fi
if [ "$pid" != "" ];then
echo -e "`hostname`: stopping $appName $pid ... " >&
gpid=`ps -C java -f --width |grep "$pid"|grep -v grep|awk '{print $2}'`
if [ "$gpid" == "$pid" ] ; then
kill $pid
fi
fi LOOPS=
while (true);
do
echo "stoping..."
gpid=`ps -C java -f --width |grep "$appName"|grep -v grep|awk '{print $2}'`
if [ "$gpid" == "" ];then
echo "Oook! cost:$LOOPS" >&
if [ -f $pidfile ];then
`rm $pidfile`
fi break;
fi
let LOOPS=LOOPS+
sleep
done

运行Jar包程序Shell的更多相关文章

  1. windows 下启动运行 jar 包程序

    windows 下 运行 jar 包 java -jar XXX.jar java -server -Xms1024m -Xmx20480m -jar $JAR_NAME.jar windows 后台 ...

  2. 【原】无脑操作:Centos 7后台运行及终止jar包程序

    1.后台运行jar包程序,输入:nohup java -jar /路径/程序.jar & 2.后台终止jar包程序,输入:ps -ef | grep java,查看使用java命令的进程,再输 ...

  3. 一个简单的Linux启动jar包的shell脚本

    背景: 项目设备端需要运行jar包程序与服务端进行socket连接并发送数据,每次启动进程时,都需要在Linux终端输入启动jar包的命令,比较繁琐,随之尝试将启动jar包的命令写入shell脚本文件 ...

  4. Linus运行jar包的操作

    cd /    返回最顶层文件夹cd home/numa        进入home下的numa文件夹ll         查看当前文加夹下的所有文件ps -ef | grep java        ...

  5. linux 下检查java jar包 程序是否正常 shell

    linux 下检查java jar包 程序是否正常 shell http://injavawetrust.iteye.com BATCH_SERVER="batch.jar" NR ...

  6. 不显示cmd窗口运行jar包

    今天,打开导出的jar包,发现并不能运行,查看jar包中的META-INF文件夹下的MANIFEST.MF文件,发现MANIFEST.MF中并没有Main-Class,于是,就手动添加相应的信息,本项 ...

  7. spring boot maven打包可运行jar包

    普通打包之后在程序目录运行,或者编写bat运行时会提示“没有主清单属性”,这是因为并没有找到main()方法,需要我们指明告诉java程序 我bat中的代码 @echo off title mytit ...

  8. Linux下如何让jar包程序在后台一直执行

    Linux下如何让Jar包程序在后台一直执行 shell命令 nohup java -jar xxx.jar & &:让程序后台执行. nohub:让程序控制台输出转移到nohub.o ...

  9. 如何打包/运行jar包,及生成exe文件

    关于如何打包/运行jar包,以及生成exe文件.之前各种查询.博客,终于搞明白究竟是咋回事.记得还做过笔记的.今天要打包生成exe用的时候,居然忘了咋怎来着.去查看之前的笔记,死活没找到(好像被删掉了 ...

随机推荐

  1. 「专题训练」Hard problem(Codeforces Round #367 Div. 2 C)

    题意与分析 题意:给出\(n\)个字符串,可以反转任意串,反转每个串都有其对应的花费\(c_i\).经过操作后是否能满足字符串\(\forall i \in [1,n] \text{且} i \in ...

  2. 使用python中读取配置文件

    最近在接触利用python来写测试框架,本人也是个刚接触python,所以是个小菜鸟,今天开始,一点点的记录学习中的积累,方便以后的学习以及回顾,也希望能帮助跟我一样的小菜鸟们一步步的成长起来.那么, ...

  3. 初学Direct X(4)

    初学Direct X(4) 本文学着做出一个如下的小游戏 游戏方式是使用键盘控制红色的Bucket收集蓝色的炸弹 1.酝酿一下 现在我已经掌握: 将位图文件加载到内存 绘制位图到buckbuffer ...

  4. Linux系统负载查询

    查询Linux系统负载情况,一般需要了解三个方面的信息: 1.Linux系统配置.如Linux版本号.CPU.内存.网络.磁盘等: 2.收集系统负载信息的手段.常用的工具包有sysstat和procp ...

  5. 【MySQL解惑笔记】Centos7下卸载彻底MySQL数据库

    彻底卸载Yum安装的MySQL数据库 在我第二章MySQL数据库基于Centos7.3-部署过程中,因为以前安装过其它的版本所以没有卸载干净影响后期安装 一.卸载Centos7自带的Maridb数据库 ...

  6. 吴恩达深度学习 反向传播(Back Propagation)公式推导技巧

    由于之前看的深度学习的知识都比较零散,补一下吴老师的课程希望能对这块有一个比较完整的认识.课程分为5个部分(粗体部分为已经看过的): 神经网络和深度学习 改善深层神经网络:超参数调试.正则化以及优化 ...

  7. 十:HDFS Short-Circuit Local Reads 短路本地读取

    当client请求数据时,datanode会读取数据然后通过TCP协议发送给client.short-circuit绕过了datanode直接读取数据.short-circuit的前提是client和 ...

  8. html5 canvas绘制环形进度条,环形渐变色仪表图

    html5 canvas绘制环形进度条,环形渐变色仪表图                                             在绘制圆环前,我们需要知道canvas arc() 方 ...

  9. iOS开发自定义试图切换

    CATransition *transition = [CATransition animation]; transition.duration = 1.0f; transition.timingFu ...

  10. 大型网站架构演化(八)——使用NoSQL和搜索引擎

    随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎,如图. NoSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分 ...