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 ...
随机推荐
- Java反编译器剖析
本文由 ImportNew - 邬柏 翻译自 javacodegeeks.如需转载本文,请先参见文章末尾处的转载要求. Importnew注:如果你也对Java技术翻译分享感兴趣,欢迎加入我们的Jav ...
- Linux之JSON处理工具jq
一个灵活的轻量级命令行JSON处理器 补充说明 jq 是 stedolan 开发的一个轻量级的和灵活的命令行JSON处理器,源码请参考 jq 项目主页 jq 用于处理JSON输入,将给定过滤器应用于其 ...
- NOIP2024加赛8
NOIP2024加赛8 T1 flandre 第 4 个样例没给全,说明这可以直接猜结论 首先我们假设选定了 $ x $ 个数,那么我们肯定是把他们从小到大排好序依次放,这样才能使整体效果最大.然后我 ...
- 使用CANAL同步数据
1.概要 canal 是阿里发布的一个mysql 同步工具,它是模拟 mysql slave 的方式读取binlog,并可以将数据写入到队列中. 如下图:是官方提供的架构图. 2.下载CANAL 下载 ...
- LALR语法分析表
LALR语法分析表 1.LALR(向前看-LR)技术 2.在实践中常用,分析表比规范LR分析表小 LALR(1)项集族的内核的高效计算方法 1.构造G的LR(0)项集族的内核 2.确定自发生的符号 3 ...
- 【Amadeus原创】SQL Server查询某数据库所有表名行数和空间占用率
` select object_name(id) tablename, 8reserved/1024 reserved, rtrim(8dpages)+'kb' used, 8(reserved-dp ...
- js面试题-代码实现
新 API 最新的 url 参数获取的 API? URLSearchParams // 有如下一个url: http://localhost?a=1&b=2 function getUrlPa ...
- mysql将公司数据随机挂在部门身上
1.创建示例数据 CREATE TABLE department_table ( company_code VARCHAR(10) COMMENT '公司编码', company_name VARCH ...
- 【C#】根据分数求出相应的成绩等级
设计窗体程序,使用文本框控件输入百分制成绩,实现将学生的百分制成绩转换为对应的等级成绩(优.良.中.及格.不及格). 要求:必须使用异常处理技术,优先使用switch-case的方式 点击查看代码 | ...
- Windows7系统启用ipv6的详细步骤(图文)
IPV6是IETF设计的用于替代现行版本IP协议(IPv4)的下一代IP协议.一般情况下,win7系统默认是关闭IPV6服务的,之前教程也有分享过win7禁用ipv6协议的方法.那么如果要启用ipv6 ...