首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

shell 起动、停止、重启java程序

2012-07-27 
shell 启动、停止、重启java程序-D*) JAVA_OPTS${JAVA_OPTS} ${ARGS[$i]} -Heap*) HEAP_MEMORY${ARGS

shell 启动、停止、重启java程序

    -D*) JAVA_OPTS="${JAVA_OPTS} ${ARGS[$i]}" ;;
    -Heap*) HEAP_MEMORY="${ARGS[$i+1]}" ;;
    -Perm*) PERM_MEMORY="${ARGS[$i+1]}" ;;
    -JmxPort*) JMX_PORT="${ARGS[$i+1]}" ;;
    esac
    done

    #完整的jvm启动参数,将之前定义的变量组合。
    JAVA_OPTS="${JAVA_OPTS} -Xms${HEAP_MEMORY} -Xmx${HEAP_MEMORY} -XX:PermSize=${PERM_MEMORY} -X X:MaxPermSize=${PERM_MEMORY} -Dcom.sun.management.jmxremote.port=${JMX_PORT} -Duser.dir=${Projec t_HOME}"

    #输出参数
    echo "start jvm args ${JAVA_OPTS}"

    #此条语句最为重要,使用nohup命令启动jar包,nohup命令就是让程序永远在后台运行
    nohup java $JAVA_OPTS -jar ${Project_HOME}/bin/project.jar &

    # $!为系统变量,表示上一个子进程的进程号。 shell遇到”>”操作符,会判断右边文件是否存在,如果存在就先删除,并且创建新文件。
    #不存在直接创建。无论左边命令执行是否成功。右边文件都会变为空。
    #重定向不是很理解,个人认为就是将进程号保存在 project.pid文件中
    echo $! > $ProjectPIDFILE

    #打印系统启动成功
    echo STARTED

    #一直不知道两个连着的分号是啥意思,我想应该就是break的意思
    ;;

    #如果$1为stop时
    stop)
    echo "Stopping project ... "

    #首先判断project.pid是否存在,若不存在返回没有找到文件。-f 判断后面参数是否是一个文件,若是返回1
    if [ ! -f $ProjectPIDFILE ]
    then
    echo "error: count not find file $ProjectPIDFILE"
    exit 1
    else

    #杀掉系统进程 $(cat $ProjectPIDFILE)
    kill -9 $(cat $ProjectPIDFILE)
    rm $ProjectPIDFILE
    echo STOPPED
    fi
    ;;

    #如果$1不是start、stop等任意字符时,
    *)
    echo "Exec ... "

    #调用ant来执行这个命令
    ant $*
    ;;

    #结束case语句
    esac

    exit 0

    ?

    ?

热点排行