#!/bin/bash
#description: ljdjService
export PRG_HOME=/ainmc/work/toptea/dataTransfer
PRG_KEYWORD=projectName
PRG=$PRG_HOME/server.sh
JAVA_HOME=/aa/bb/jdk1.8.0_111 #jdk安装位置
LOGCFG="-Dlogback.configurationFile=$PRG_HOME/conf/logback.xml"
FILE_ENCODING="-Dfile.encoding=utf-8"
jvmOpt="-Xms2048m -Xmx2048m -XX:PermSize=256M -XX:MaxPermSize=512m"
PRG_RUN_USER=nmcuser
pidFile=$PRG_HOME/server.pid
MAIN_CLASS=com.ai.vv.aa.Main # main方法的路径
jarDir=$PRG_HOME/lib
transferType="$2"
cd $PRG_HOME
function start(){ echo "will start $PRG_KEYWORD $transferType"
export CLASSPATH=.
for jar in `ls $PRG_HOME/lib/*.jar`
do
CLASSPATH=$CLASSPATH:$jar
done
# nohup "$JAVA_HOME"/bin/java -Djobname="$PRG_KEYWORD" -cp "$CLASSPATH" $jvmOpt $LOGCFG $FILE_ENCODING $MAIN_CLASS add "$transferType" >/dev/null 2>&1&
"$JAVA_HOME"/bin/java -Djobname="$PRG_KEYWORD" -cp "$CLASSPATH" $jvmOpt $LOGCFG $FILE_ENCODING $MAIN_CLASS add "$transferType"
for(( i=1;i<=10;i++));do
if [ -e $pidFile ]; then
echo "$PRG_KEYWORD is started,pid=`cat $pidFile`"
break
fi
sleep 2
done
}
function delete(){ echo "will start $PRG_KEYWORD"
export CLASSPATH=.
for jar in `ls $PRG_HOME/lib/*.jar`
do
CLASSPATH=$CLASSPATH:$jar
done
# nohup "$JAVA_HOME"/bin/java -Djobname="$PRG_KEYWORD" -cp "$CLASSPATH" $jvmOpt $LOGCFG $FILE_ENCODING $MAIN_CLASS delete "$transferType">/dev/null 2>&1&
"$JAVA_HOME"/bin/java -Djobname="$PRG_KEYWORD" -cp "$CLASSPATH" $jvmOpt $LOGCFG $FILE_ENCODING $MAIN_CLASS delete "$transferType"
for(( i=1;i<=10;i++));do
if [ -e $pidFile ]; then
echo "$PRG_KEYWORD is started,pid=`cat $pidFile`"
break
fi
sleep 2
done
}
psid=0
checkpid() {
javaps=`$JAVA_HOME/bin/jps -l | grep $PRG_KEYWORD` if [ -n "$javaps" ]; then
psid=`echo $javaps | awk '{print $1}'`
else
psid=0
fi
} stop() {
checkpid if [ $psid -ne 0 ]; then
echo -n "Stopping $PRG_KEYWORD ...(pid=$psid) "
kill -9 $psid
if [ $? -eq 0 ]; then
echo "[OK]"
else
echo "[Failed]"
fi checkpid
if [ $psid -ne 0 ]; then
stop
fi
else
echo "================================" echo "================================"
fi
}
case "$1" in
start)
if [ -e $pidFile ]; then
pid=`cat $pidFile`
tpid=`ps -ef | grep java | grep -v grep | grep jobname=$PRG_KEYWORD | grep -c "$PRG_RUN_USER "`
if [ $tpid -lt 1 ]; then
start
else
echo "$PRG_KEYWORD already started!! pid="$pid
fi
else
tpid=`ps -ef | grep java | grep -v grep | grep jobname=$PRG_KEYWORD | grep -c "$PRG_RUN_USER "`
pid=`ps -ef | grep java | grep -v grep | grep jobname=$PRG_KEYWORD | grep "$PRG_RUN_USER " | awk '{print $2}'`
if [ $tpid -lt 1 ]; then
start
else
echo "$PRG_KEYWORD already started!! pid="$pid
echo "$pid">server.pid
fi
fi
;; del)
if [ -e $pidFile ]; then
pid=`cat $pidFile`
tpid=`ps -ef | grep java | grep -v grep | grep jobname=$PRG_KEYWORD | grep -c "$PRG_RUN_USER "`
if [ $tpid -lt 1 ]; then
delete
else
echo "$PRG_KEYWORD already started!! pid="$pid
fi
else
tpid=`ps -ef | grep java | grep -v grep | grep jobname=$PRG_KEYWORD | grep -c "$PRG_RUN_USER "`
pid=`ps -ef | grep java | grep -v grep | grep jobname=$PRG_KEYWORD | grep "$PRG_RUN_USER " | awk '{print $2}'`
if [ $tpid -lt 1 ]; then
delete
else
echo "$PRG_KEYWORD already started!! pid="$pid
echo "$pid">server.pid
fi
fi
;;
stop)
stop;;
*)
echo "Usage: server.sh (start|del|stop 工单类型英文关键字)"
esac

linux shell脚本调用java main方法 代码传值的更多相关文章

  1. linux shell脚本调用java main方法 代码

    #!/bin/sh # #该脚本为Linux下启动java程序的通用脚本.即可以作为开机自启动service脚本被调用, #也可以作为启动java程序的独立脚本来使用. # #Author: tuda ...

  2. linux 调用java main方法

    #!/bin/shexport LANG=zh_CNtimestamp=`date +%Y%m%d%H%M`/opt/java6/bin/java -Xms128m -Xmx512m -Dfile.e ...

  3. linux c程序中获取shell脚本输出的实现方法

    linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...

  4. 在linux下sh批处理文件调用java的方法

    解密 java -classpath collection-impl-0.0.1.jar com.ai.toptea.collection.message.DESEncrypt 1EFE4663895 ...

  5. 学习Linux shell脚本中连接字符串的方法

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

  6. linux使用shell脚本停止java进程

    使用shell脚本停止java进程,过程就是先查出对应的java进程pid,然后kill掉 - | 其中xxx是对应进程的关键词(即从查出的所有java进程中分辨出目标进程)

  7. LINUX SHELL脚本攻略笔记[速查]

    Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述 ...

  8. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

  9. Linux shell脚本编程(一)

    Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...

随机推荐

  1. JavaSE Map集合

    Map集合 在Map集合中保存的数据为一组数据,其中:一个数据为key,另外一个数据为value.而key和value具备对应的关系,在集合中它们属于一组(一对)数据.而每个key只能对应唯一的一个v ...

  2. API网关【gateway 】- 3

    最近在公司进行API网关重写,公司内采用serverMesh进行服务注册,调用,这里结合之前学习对API网关服务进行简单的总结与分析. 由于采用了大量的nginx相关的东西,所以在此记录一下: 在ng ...

  3. char和string的不同点

    'a'是char, "a"是char string,这两者都是普通的字符和字符串,和C中没什么不同 值得注意的是后者包含两个字符,末尾有一个隐身的'\0' 而:string str ...

  4. RyuJIT的华丽转身【译文】

    2018-06-19 RyuJIT是作为.NET即时编译器的代号称谓,它是.NET运行时的基本组件之一.与此相反的是,Roslyn作为C#编译器,其编译C#代码成为IL字节码.然后,其再将IL字节码编 ...

  5. c语言学习笔记-continue

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.continue函数意义 用于跳过本次循环余下语句,转去判断是否需要执行下次循环 二.continue使用案例 编写代码,对 ...

  6. 【读书笔记】iOS-WiFi长连接

    如果你的应用需要一个持久的WiFi长连接,你可以通过设置应用的Info.plist文件中的UIRequiresPersistentWiFi配置项的Boolean值来达到目的.如果这个配置项的值为YES ...

  7. Apex计划作业框架的实现

    Apex计划作业框架的实现 在本文中,我们实现一个简单的"计划作业框架",用于实现数据的定时自动处理. Apex相关接口 Apex中提供了一组接口用来实现数据的处理.我们主要使用以 ...

  8. 安全测试 web应用安全测试之XXS跨站脚本攻击检测

    web应用安全测试之XXS跨站脚本攻击检测 by:授客 QQ:1033553122 说明 意在对XSS跨站脚本攻击做的简单介绍,让大家对xss攻击有个初步认识,并能够在实际工作当中运用本文所述知识做些 ...

  9. vue路由的配置

    一.准备工作 1安装vue-cli  npm install vue-cli -g 2检查是否安装成功 vue -V(大写V) 3初始化一个新的项目 vue init  webpack vue-dem ...

  10. 【Java入门提高篇】Day26 Java容器类详解(八)HashSet源码分析

    前面花了好几篇的篇幅把HashMap里里外外说了个遍,大家可能对于源码分析篇已经讳莫如深了.别慌别慌,这一篇来说说集合框架里最偷懒的一个家伙——HashSet,为什么说它是最偷懒的呢,先留个悬念,看完 ...