前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java启动和停止sh

java启动和停止sh

作者头像
奋飛
发布2019-08-15 16:06:14
1.5K0
发布2019-08-15 16:06:14
举报
文章被收录于专栏:Super 前端Super 前端

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://ligang.blog.csdn.net/article/details/43453083

一、说明

window下:echo "%JAVA_HOME%" Liunx Crontab 定时的逻辑:/etc/crontab JAVA_HOME/bin/:java -help java:Java解释器,直接从类文件执行Java应用程序代码 jps:仅查找当前用户的Java进程,而不是当前系统中的所有进程。 native2ascii:用于转换字符或者文件的编码格式

二、启动脚本

代码语言:javascript
复制
#!/bin/sh

#set JAVA_HOME
#JAVA_HOME=/usr/local/java

#check JAVA_HOME & java
noJavaHome=false
# -z 字符串长度伪则为真
if [ -z "$JAVA_HOME" ] ; then
    noJavaHome=true
fi
# -e 如果文件存在则为真
if [ ! -e "$JAVA_HOME/bin/java" ] ; then
    noJavaHome=true
fi
if $noJavaHome ; then
    echo
    echo "Error: JAVA_HOME environment variable is not set."
    echo
    exit 1
fi
#==============================================================================

#set JAVA_OPTS
JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xmn512m -Xss512k"
#performance Options
JAVA_OPTS="$JAVA_OPTS -XX:+AggressiveOpts"
JAVA_OPTS="$JAVA_OPTS -XX:+UseBiasedLocking"
JAVA_OPTS="$JAVA_OPTS -XX:+UseFastAccessorMethods"
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC"
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSParallelRemarkEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSCompactAtFullCollection"
JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly"
JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=75"
#GC Log Options
#JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCApplicationStoppedTime"
#JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps"
#JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails"
#debug Options
#JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8065,server=y,suspend=n"
#==============================================================================

#set HOME
PTFENCE_DIR=`pwd`
#这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。
cd `dirname "$0"`/..
PTFENCE_HOME=`pwd`
cd $PTFENCE_DIR
if [ -z "$PTFENCE_HOME" ] ; then
    echo
    echo "Error: COBAR_HOME environment variable is not defined correctly."
    echo
    exit 1
fi
#==============================================================================

#set CLASSPATH
PTFENCE_CLASSPATH="$PTFENCE_HOME/conf:$PTFENCE_HOME/lib/classes"
for i in "$PTFENCE_HOME"/lib/*.jar
do
    PTFENCE_CLASSPATH="$PTFENCE_CLASSPATH:$i"
done
#==============================================================================

if [ -d "$PTFENCE_HOME/logs" ] ; then
	echo "logs dir exits"
else 
	mkdir  $PTFENCE_HOME/logs
fi

#startup Server
#get java
RUN_CMD="\"$JAVA_HOME/bin/java\""
#-D<name>=<value> set a system property
RUN_CMD="$RUN_CMD -Dptfence.home=\"$PTFENCE_HOME\""
#-classpath:class search path of directories and zip/jar files
RUN_CMD="$RUN_CMD -classpath \"$PTFENCE_CLASSPATH\""
#添加其他可扩展参数
RUN_CMD="$RUN_CMD $JAVA_OPTS"
#$@传递给函数或脚本的所有参数
RUN_CMD="$RUN_CMD com.test.inf.ptfence.FenceCore \"$PTFENCE_HOME/conf/config.properties\" $@"
#>>追加到文件末尾
RUN_CMD="$RUN_CMD >> \"$PTFENCE_HOME/logs/console.log\" 2>&1 "
echo $RUN_CMD
#eval的作用是再次执行命令行处理,也就是说,对一个命令行,执行两次命令行处理
eval $RUN_CMD
echo "====exec ptfence complete===="
#上个命令的退出状态,或函数的返回值
echo $?
#==============================================================================

三、停止脚本

代码语言:javascript
复制
#!/bin/sh

#set JAVA_HOME
#JAVA_HOME=/usr/local/java

#check JAVA_HOME & java
echo "start shutdown ptfence....."
noJavaHome=false
if [ -z "$JAVA_HOME" ] ; then
    noJavaHome=true
fi
if [ ! -e "$JAVA_HOME/bin/java" ] ; then
    noJavaHome=true
fi
if $noJavaHome ; then
    echo
    echo "Error: JAVA_HOME environment variable is not set."
    echo
    exit 1
fi
#==============================================================================

#set JAVA_OPTS
JAVA_OPTS="-Xss256k"
#==============================================================================

#stop Server
#jps仅查找当前用户的Java进程,而不是当前系统中的所有进程
$JAVA_HOME/bin/jps |grep FenceCore|awk -F ' ' '{print $1}'|while read line
do
  eval "kill -9 $line"
done
rm -rf /tmp/ptfence-*
#==============================================================================
echo "shutdown ptfence success."


jps

17930 Bootstrap
32502 SocketServer
23932 Jps
13193 Bootstrap
23219 Bootstrap
10282 Bootstrap
23907 FenceCore
26118 QuorumPeerMain
#awk -F ' ' '{print $1}' 第一段,即12345
#while read line命令从grep的输出中读取数据。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年02月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、说明
  • 二、启动脚本
  • 三、停止脚本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档