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脚本练习的更多相关文章

  1. shell运行java/Jar 脚本

    1.Shell执行/调用Java/Jar程序 #!/bin/bash JAVA_HOME="$HOME/jdk" BASE_DIR=`dirname $0` if [ " ...

  2. 在crontab中执行shell脚本的问题

    crontab中记录的编写比较简单,下面是一个示例: * * * /app/tpssapp/ftpsrc/tools/statTables/statTables.sh > /app/tpssap ...

  3. spring boot jar 部署linux服务器

    用命令启动spring boot 项目,一旦终端命令窗口关闭,项目也就关闭了,所以我们采用脚本的方式来运行jar 正常命令 java -jar xxx.jar 脚本启动,vim 创建 start.sh ...

  4. 在linux中部署项目并创建shell脚本

    1.首先要在idea中父工程maven包下执行clean生成的target包 2.执行package打包,打包时候讲test勾去掉 3.将target包中生成的jar包cp出来 此处注意打包时必须要保 ...

  5. Jenkins自动打包并部署(以java -jar形势运行)

    1.打包 与平常maven项目打包一致,不再赘述 2.杀死原有进程 通过 pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` 获取当前 ...

  6. linux 部署jar包开机自启

    1.用xShell将jar包上传到linux上(jar包上传到 /root/java) 输入rz命令,看是否已经安装了lrzsz,如果没有安装则执行  yum   -y  install  lrzsz ...

  7. Android apk的安装、卸载、更新升级(通过Eclipse实现静默安装)

    一.通过Intent消息机制发送消息,调用系统应用进行,实现apk的安装/卸载 . (1) 调用系统的安装应用,让系统自动进行apk的安装 String fileName = "/data/ ...

  8. 详细版在虚拟机安装和使用hadoop分布式集群

    集群模式: 一台master 192.168.85.2 一台slave  192.168.85.3 jdk jdk1.8.0_74(版本不重要,看喜欢) hadoop版本 2.7.2(版本不重要,2. ...

  9. hadoop 把mapreduce任务从本地提交到hadoop集群上运行

    MapReduce任务有三种运行方式: 1.windows(linux)本地调试运行,需要本地hadoop环境支持 2.本地编译成jar包,手动发送到hadoop集群上用hadoop jar或者yar ...

  10. hadoop本地运行与集群运行

    开发环境: windows10+伪分布式(虚拟机组成的集群)+IDEA(不需要装插件) 介绍: 本地开发,本地debug,不需要启动集群,不需要在集群启动hdfs yarn 需要准备什么: 1/配置w ...

随机推荐

  1. Memcached笔记——(一)安装&常规错误&监控

    08年的时候接触过Memcached,当时还对它的客户端产品嗤之以鼻,毕竟手工代码没有各种ORM原生XML配置方便.尽管如此,Memcached现在已经成了服务器架构里不可或缺的一部分! 相关链接:  ...

  2. 初见memcached

    一. 概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能. 二. 适用场合 1. 分布式应用 ...

  3. JVM 核心技术

    1.Java代码编译和执行的整个过程: 2. JVM内存管理及垃圾回收机制:  先看图, 二.Java代码编译和执行的整个过程 Java代码编译是由Java源码编译器来完成,流程图如下所示: Java ...

  4. Nuxt.js 应用中的 webpack:progress 事件钩子

    title: Nuxt.js 应用中的 webpack:progress 事件钩子 date: 2024/11/27 updated: 2024/11/27 author: cmdragon exce ...

  5. LiV-GS: LiDAR-Vision Integration for 3D Gaussian Splatting SLAM in Outdoor Environments

    arxiv |哈工大发布 LiV-GS:户外环境中基于3D高斯泼溅的LiDAR-视觉集成SLAM系统 [LiV-GS: LiDAR-Vision Integration for 3D Gaussian ...

  6. ant 表格中的分页属性

    组件中添加 属性 :pagination="paginationProps" 定义paginationprops const paginationProps = reactive( ...

  7. Prime2_解法二:openssl解密凭据

    Prime2_解法二:openssl解密凭据 本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技术能力.请在合法合规的前提下使用本文中提供的任何技术.方法或工具.如果您选择使用本博 ...

  8. JavaScript 的 Mixin 问题

    JavaScript 从 ES6 开始支持 class 了, 如何在现在的 class 上实现 mixin 呢? 很多人推荐这种搞法 Object.assign(MyClass.prototype, ...

  9. 在.NET Core中使用异步多线程高效率的处理大量数据的最佳实践

    目录 一.引言 二.假设场景 三.解决方案 四.示例代码 一.引言 处理大量数据是一个常见的需求,传统的同步处理方式往往效率低下,尤其是在数据量非常大的情况下.本篇将介绍一种高效的多线程异步处理大数据 ...

  10. Write failed: Broken pipe > Couldn‘t read packet: Connection reset by peer SFTP服务器连接出现的问题

    如果你链接服务器的时候出现下面的提示: Write failed: Broken pipeCouldn't read packet: Connection reset by peer这个问题的原因是C ...