运行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用的时候,居然忘了咋怎来着.去查看之前的笔记,死活没找到(好像被删掉了 ...
随机推荐
- generator-ivweb 基于react-redux的多页脚手架
背景 每个公司甚至每个项目组,在开发新项目的时候都会有一些自己特色的东西,比如公共组件,ajax请求拦截处理,内部积累的一些业务逻辑等等,如果没有自己的脚手架,那么拷贝代码成为常态,每个项目的结构,甚 ...
- K8S全栈容器服务如何助力企业云化创新?
容器编排管理平台Kubernetes在实践两年多后,市场主导地位被正式确定,随着首批认证服务商的宣布,围绕着容器的应用编排部署服务已然成熟,Kubernetes开始在商业场景为企业创造价值.华为云在K ...
- Oracle 字段拆分替换在合并成一条
看了网上很多Oracle字段拆分的实例,但是都未能完全满足要求,或许是我水平不够未能很好的理解,如果有大神懂得并且愿意告知我的,可以私信我,在这里真诚的感谢! 1. 首先建立表并插入测试数据 drop ...
- java后台接受web前台传递的数组参数
前台发送:&warning_type[]=1,2 &warning_type=1,2 后台接收:(@RequestParam(value = "param[]") ...
- Spring Cloud(十一):服务网关 Zuul(过滤器)【Finchley 版】
Spring Cloud(十一):服务网关 Zuul(过滤器)[Finchley 版] 发表于 2018-04-23 | 更新于 2018-05-07 | 在上篇文章中我们了解了 Spring ...
- leetcode-分割回文子串
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回 s 所有可能的分割方案. 示例: 输入: "aab" 输出: [ ["aa",&quo ...
- 中文乱码的处理—@北河的ppt
- Hyperledger fablic 1.0 在centos7环境下的安装与部署和动态增加节点
Hyperledger fablic 1.0 在centos7环境下的安装与部署和动态增加节点 一.安装docker 执行代码如下: curl -sSL https://get.daocloud.io ...
- Android开发 使用 adb logcat 显示 Android 日志
作者 : 万境绝尘 转载请著名出处 eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志; 1. 解析 adb logcat 的帮助信息 在命令行中输入 ...
- 项目--uml
[团队信息] 团队项目: 小葵日记--主打记录与分享模式的日记app 队名:日不落战队 队员信息及贡献分比例: 短学号 名 本次作业博客链接 此次作业任务 贡献分配 备注 501 安琪 http:// ...