• 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
  • 相关阅读:
    L1-047 装睡 (10分)
    QT 文件的读写,将txt中的数据存储到QVector
    C++Primer第五版 第十二章 动态内存
    C++Primer第五版 第十一章 关联容器
    从《上瘾》到 《不被干扰》
    MySQL模糊查询用法(正则、通配符、内置函数等)
    MySQL-SQL优化总结
    MySQL中特别实用的几种SQL语句
    public、private、protected 和 default
    DO,DTO,VO,POJO详解
  • 原文地址:https://www.cnblogs.com/xiaoyu1994/p/9240253.html
Copyright © 2020-2023  润新知