java独立程序部署shell脚本

一、介绍

实际项目中为了将java程序部署到服务器上,服务器的环境和开发者在自己的电脑上运行程序是不一样的,开发期间程序的运行一般依赖于IDE上面集成好的环境,只要在软件上面直接运行main方法一般即可验证,然而Linux服务上面一般除了我们安装的jdk就没有别的环境,在不考虑有各种集成好的发布独立程序的平台的情况下,一般需要我们自己编写运行脚本等各种运维脚本了

二、服务器环境搭建

1、安装jdk、搭建java运行环境,配置JAVA_HOEM到环境变量中

2、规范部署程序目录结构

├── project
│   ├── bin         运维脚本存放目录
│   ├── config      配置文件存放目录
│   ├── lib         jar包存放目录
│   └── logs        运行日志存放目录

3、将代码排除依赖包和配置文件打包存放进相应目录

可使用各种ant maven甚至直接使用ide进行编译打包,注意排除依赖的jar以及相应配置文件,以便于在服务器根据需求进行配置
- 依赖包以及编译打包好的程序存放lib目录
- 配置文件存放于config目录

三、运维脚本

start.sh

#!/bin/bash
#############################################################
#
#  start.sh create by [email protected]
#
#############################################################

#############################################################
#
#  base_dir  -配置程序目录
#  base_dir="/soft/project"
#
#############################################################
base_dir="/home/bingchenglin/project"

#############################################################
#
#  java_home  -配置使用的JAVA_HOME地址
#  java_home=${JAVA_HOME}
#
#############################################################

java_home=${JAVA_HOME}

if [ -z "${java_home}" ]
then
    echo "JAVA_HOME is empty!"
    exit 0
fi


for i in `find ${base_dir}/lib -name "*.jar"`
do
        CP=$CP:$i
done

if [ -z "${CLASSPATH}" ]
then
    CLASSPATH = .:${JAVA_HOME}/lib:$JAVA_HOME/jre/lib
fi

CLASSPATH=${CLASSPATH}:${CP}:${base_dir}/config

export CLASSPATH

echo "\n"
echo "CLASSPATH=${CLASSPATH}"

#启动程序
echo "nohup ${java_home}/bin/java -Dfile.encoding=UTF-8 com.modelsystem.Main >> ${base_dir}/logs/console.log 2>&1 &"
nohup ${java_home}/bin/java -Dfile.encoding=UTF-8 com.modelsystem.Main >> ${base_dir}/logs/console.log 2>&1 &

echo "\n"
echo "启动完成,请查看日志"

stop.sh

#!/bin/bash
#############################################################
#
#  stop.sh create by [email protected]
#
#############################################################

#############################################################
#
#  PROCESS_NAME -Main程序类名
#  PROCESS_PARM -Main参数
#  USER         -进程所有者用户名
#
#############################################################
PROCESS_NAME="com.modelsystem.Main"
PROCESS_PARM=""
USER="bingchenglin"


ps -ef|grep ${PROCESS_NAME} |grep ${PROCESS_PARM} |grep ${USER} | grep java | grep -v grep | awk '{print $2}' |while read pid
do
        kill ${pid} 2>&1 >/dev/null
        echo "进程名称:${PROCESS_NAME},参数:${PROCESS_PARM},PID:${pid} 成功停止"
done

可以根据其他需求添加各种监控和清除日志的脚本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章