linux shell脚本调用java main方法 代码传值
#!/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方法 代码传值的更多相关文章
- linux shell脚本调用java main方法 代码
#!/bin/sh # #该脚本为Linux下启动java程序的通用脚本.即可以作为开机自启动service脚本被调用, #也可以作为启动java程序的独立脚本来使用. # #Author: tuda ...
- linux 调用java main方法
#!/bin/shexport LANG=zh_CNtimestamp=`date +%Y%m%d%H%M`/opt/java6/bin/java -Xms128m -Xmx512m -Dfile.e ...
- linux c程序中获取shell脚本输出的实现方法
linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...
- 在linux下sh批处理文件调用java的方法
解密 java -classpath collection-impl-0.0.1.jar com.ai.toptea.collection.message.DESEncrypt 1EFE4663895 ...
- 学习Linux shell脚本中连接字符串的方法
这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...
- linux使用shell脚本停止java进程
使用shell脚本停止java进程,过程就是先查出对应的java进程pid,然后kill掉 - | 其中xxx是对应进程的关键词(即从查出的所有java进程中分辨出目标进程)
- LINUX SHELL脚本攻略笔记[速查]
Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述 ...
- Linux shell脚本编程(三)
Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
随机推荐
- C# 循环语句 for
循环:反复执行某段代码. 循环四要素:初始条件,循环条件,循环体,状态改变. for格式 for(初始条件;循环条件;状态改变) { 循环体 } break ——中断循环,跳出整个循环 continu ...
- 解决Linux服务器tomact-8.0启动慢的问题
环境信息: CentOS release 6.8 tomcat-8.0 JDK1.8 一.启动tomcat #sh /root/tomcat-8.0/bin/startup.sh #tailf /ro ...
- Mysql数据库单表查询
1.单表查询语法 #查询数据的本质:mysql会到你本地的硬盘上找到对应的文件,然后打开文件,按照你的查询条件来找出你需要的数据.下面是完整的一个单表查询的语法 select * from,这个sel ...
- CSS中你知道的display的值有多少?用了多少?
它的语法如下: display:none | inline | block | list-item | inline-block | table | inline-table | table-capt ...
- codechef QCHEF(不删除莫队)
题意 题目链接 给出长度为\(n\)的序列,每次询问区间\([l, r]\),要求最大化 \(max |x − y| : L_i ≤ x, y ≤ R_i and A_x = A_y\) Sol 标算 ...
- 【工具相关】Web-Sublime Text2新建立文件夹(二)
紧接着上文. 一,打开Sublime Text2. 二,在桌面上新建立一个文件夹,html5. 三,打开html5如图所示.里面有我们刚刚建立好的文件. 四,把html5文件夹拖动到sublime2中 ...
- gulp使用 笔记
全局安装gulp,也需要本地安装gulp插件.全局安装gulp是为了执行gulp任务,本地安装gulp则是为了调用gulp插件的功能 //导入工具包 require('node_modules里对应模 ...
- AWT初步—Frame和 Panel
初识 AWT GUI 和 AWT GUI:Graphics User Interface 图形用户界面 AWT:Abstract Window Toolkit 抽象窗口工具集 之前的程 ...
- .Net Core(三)MVC Core
MVC Core的改动感觉挺大的,需要的功能大多从Nuget安装,还内置了IOC,支持SelfHost方式运行等等. 一.项目结构的变化创建的新MVC项目的结构发生了变化,比如:静态文件需要统一放置到 ...
- uCrop图片裁剪
uCrop使用 github地址 https://github.com/Yalantis/uCrop然后clone或下载到本地,运行之. 效果预览 app/build.gradle compile ' ...