环境:

os版本:centos7.6

jdl版本:jdk1.8

项目类型:spring-boot 其他也一样

安装路径: /opt/application/

步骤:

1、配置java启动脚本

2、配置启动脚本

boot.sh 通用启动脚本  注意脚本要有执行权限:chmod +x boot.sh

#!/bin/bash
# Java ENV
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
export JRE_HOME=${JAVA_HOME}/jre

# Apps Info
# 应用存放地址
APP_HOME=/opt/application
# 应用名称
APP_NAME=$1

# jvm参数配置
JAVA_OPTS="-verbosegc"
JAVA_OPTS="${JAVA_OPTS} -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+DisableExplicitGC"
JAVA_OPTS="${JAVA_OPTS} -Dspring.profiles.active=prod"

# Shell Info

# 使用说明,用来提示输入参数
usage() {
    echo "Usage: sh boot [APP_NAME] [start|stop|restart|status]"
    exit 1
}

# 检查程序是否在运行
is_exist(){
        # 获取PID
        PID=$(ps -ef |grep ${APP_NAME} | grep -v $0 |grep -v grep |awk '{print $2}')
        # -z "${pid}"判断pid是否存在,如果不存在返回1,存在返回0
        if [ -z "${PID}" ]; then
                # 如果进程不存在返回1
                return 1
        else
                # 进程存在返回0
                return 0
        fi
}

# 定义启动程序函数
start(){
        is_exist
        if [ $? -eq "0" ]; then
                echo "${APP_NAME} is already running, PID=${PID}"
        else
                nohup ${JRE_HOME}/bin/java ${JAVA_OPTS} -jar  ${APP_HOME}/${APP_NAME} >/dev/null 2>&1 &
                PID=$(echo $!)
                echo "${APP_NAME} start success, PID=$!"
        fi
}

# 停止进程函数
stop(){
        is_exist
        if [ $? -eq "0" ]; then
                kill -9 ${PID}
                echo "${APP_NAME} process stop, PID=${PID}"
        else
                echo "There is not the process of ${APP_NAME}"
        fi
}

# 重启进程函数
restart(){
        stop
        start
}

# 查看进程状态
status(){
        is_exist
        if [ $? -eq "0" ]; then
                echo "${APP_NAME} is running, PID=${PID}"
        else
                echo "There is not the process of ${APP_NAME}"
        fi
}

case $2 in
"start")
        start
        ;;
"stop")
        stop
        ;;
"restart")
        restart
        ;;
"status")
       status
        ;;
    *)
    usage
    ;;
esac
exit 0

 

启动脚本:start.sh

#!/bin/bash
sh /opt/application/boot.sh proxyee-endpoint-server-2.2.1.RELEASE.jar $1

 

配置systemctl的文件  vim  /lib/systemd/system/endpoint.service

[Unit]
Description=endpoint-server 
After=network.target
 
[Service]
Type=forking
ExecStart=/opt/application/start.sh start
ExecReload=/opt/application/start.sh restart
ExecStop=/opt/application/start.sh stop
 
[Install]
WantedBy=multi-user.target

执行命令:

修改服务配置重新生效:systemctl daemon-reload

systemctl enable  endpoint  使配置生效,注意endpoint是项目名,start.sh需要改jar文件的名字,boot.sh需要修改项目的路径和spring环境变量配置

完成后reboot执行重启命令,看服务是否已经启动成功。

 

附赠:

开机启动:systemctl enable endpoint

启动:systemctl start endpoint

关闭:systemctl stop endpoint

重启:systemctl restart endpoint

查看状态:systemctl status endpoint

修改服务配置重新生效:systemctl daemon-reload

查看所有的开机启动项:

systemctl list-unit-files|grep enabled

 

posted on 2020-05-15 17:07  张释文  阅读(2703)  评论(0编辑  收藏  举报