运行Jar包程序Shell
启动:
#!/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的更多相关文章
- windows 下启动运行 jar 包程序
windows 下 运行 jar 包 java -jar XXX.jar java -server -Xms1024m -Xmx20480m -jar $JAR_NAME.jar windows 后台 ...
- 【原】无脑操作:Centos 7后台运行及终止jar包程序
1.后台运行jar包程序,输入:nohup java -jar /路径/程序.jar & 2.后台终止jar包程序,输入:ps -ef | grep java,查看使用java命令的进程,再输 ...
- 一个简单的Linux启动jar包的shell脚本
背景: 项目设备端需要运行jar包程序与服务端进行socket连接并发送数据,每次启动进程时,都需要在Linux终端输入启动jar包的命令,比较繁琐,随之尝试将启动jar包的命令写入shell脚本文件 ...
- Linus运行jar包的操作
cd / 返回最顶层文件夹cd home/numa 进入home下的numa文件夹ll 查看当前文加夹下的所有文件ps -ef | grep java ...
- linux 下检查java jar包 程序是否正常 shell
linux 下检查java jar包 程序是否正常 shell http://injavawetrust.iteye.com BATCH_SERVER="batch.jar" NR ...
- 不显示cmd窗口运行jar包
今天,打开导出的jar包,发现并不能运行,查看jar包中的META-INF文件夹下的MANIFEST.MF文件,发现MANIFEST.MF中并没有Main-Class,于是,就手动添加相应的信息,本项 ...
- spring boot maven打包可运行jar包
普通打包之后在程序目录运行,或者编写bat运行时会提示“没有主清单属性”,这是因为并没有找到main()方法,需要我们指明告诉java程序 我bat中的代码 @echo off title mytit ...
- Linux下如何让jar包程序在后台一直执行
Linux下如何让Jar包程序在后台一直执行 shell命令 nohup java -jar xxx.jar & &:让程序后台执行. nohub:让程序控制台输出转移到nohub.o ...
- 如何打包/运行jar包,及生成exe文件
关于如何打包/运行jar包,以及生成exe文件.之前各种查询.博客,终于搞明白究竟是咋回事.记得还做过笔记的.今天要打包生成exe用的时候,居然忘了咋怎来着.去查看之前的笔记,死活没找到(好像被删掉了 ...
随机推荐
- Python-3.6 安装pycrypto 2.6
最近接触公司后台管理系统的开发,其中涉及到加密模块pycrypto. 重点来了!!!!敲黑板!!!! pycrypto在PyCharm中跟其他的模块不一样,pip install pycrypto安装 ...
- STM32单片机是如何启动的?
STM32单片机是如何启动的? STM32中的内存 STM32中的内存包含两块主要区域:flash memory(只读).static ram memory(SRAM,读写).其中,flash mem ...
- struts2 result type属性说明
首先看一下在struts-default.xml中对于result-type的定义: <result-types><result-type name="chain" ...
- zookeeper:一.zookeeper集群安装
1.zookeeper简介2.安装zookeeper2.1 安装环境准备2.2 安装zookeeper2.2.1.解压zookeeper压缩包到/opt/zookeeper2.2.2.编辑zookee ...
- 第三周的psp
PSP: 进度条: 累计进度图: 本周PSP饼状图:
- c# throw抛出上一个异常
catch(exception e) { throw; } 不仅抛出这次的异常,也抛出之前的异常. 用法示例:函数A调用函数B,A用到此throw时,B中发生的异常也会继承过来. catch(exce ...
- 第一周—Fortran语言学习
使用教材:Fortran95程序设计[彭国伦] 第二章 编译器的使用 编译结果的好坏 1.翻译正确 2.执行文件的运行效率 3.翻译出来的执行码的长短 4.编译过程花费的时间 5.编译器提供Debug ...
- lintcode-39-恢复旋转排序数组
39-恢复旋转排序数组 给定一个旋转排序数组,在原地恢复其排序. 说明 什么是旋转数组? 比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4, ...
- Debian常用软件
1. 有道词典 https://github.com/justzx2011/openyoudao
- JAVA学习之泛型
ArrayList<E>类定义和ArrayList<Integer>类引用中涉及的术语:1.整个ArrayList<E>称为泛型类型 2.ArrayList< ...