博客
关于我
Linux shell脚本启动springboot项目
阅读量:372 次
发布时间:2019-03-04

本文共 2816 字,大约阅读时间需要 9 分钟。

Java程序管理脚本使用说明

前提说明

  • 依赖管理:请确保jarlib文件处于同一目录下,如果不满足,请自行修改配置文件。
  • 运行环境:使用sh start.sh命令运行脚本,支持以下操作:startstoprestartstatusdebug

常用命令示例

1. 启动程序

sh start.sh start test-1.x.x
  • 描述:启动指定版本的服务,输出启动日志。

2. 重启程序

sh start.sh restart test-1.x.x
  • 描述:停止当前运行的服务程序并重新启动。

3. 查看运行状态

sh start.sh status test-1.x.x
  • 描述:显示服务的运行状态及对应的进程ID。

4. 调试模式启动

sh start.sh debug test-1.x.x 51235
  • 描述:以调试模式启动服务,默认监听端口为51135。
  • 注意:调试模式下会自动关闭当前运行的服务进程。

5. 关闭程序

sh start.sh stop test-1.x.x
  • 描述:立即停止运行的服务程序。

start.sh脚本详解

1. 脚本结构

#!/bin/sh
  • 说明:脚本执行环境为/bin/sh,适用于Linux系统。

2. 变量定义

JAR_NAME="$2.jar"ADD_PORT="$3"
  • 说明:JAR_NAME表示程序文件名,ADD_PORT表示调试模式下的监听端口。

3. 功能模块

1. 帮助信息

help() {    echo "请使用以下命令:sh start.sh [start|stop|restart|status|debug] [版本号] || [ADD_PORT]"    echo "示例:sh start.sh start 1.0.1"    echo "调试模式示例:sh start.sh debug demo1.0 | sh start.sh debug demo1.0 6156"}
  • 说明:输出使用说明,支持版本号和调试端口参数。

2. 启动程序

start() {    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    if [ -z $pid ]; then        nohup java -Dloader.path=lib/ -jar $JAR_NAME > out.log 2>&1 &        pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')        echo "Service ${JAR_NAME} is starting!pid:${pid}"    else        echo "服务已运行,进程ID为${pid}。请使用stop或restart命令重新获取服务。"    fi}
  • 说明:检查当前进程,若未运行则启动服务,返回启动日志。

3. 停止程序

stop() {    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    if [ -z $pid ]; then        echo "服务未找到,无法停止。"    else        kill -9 $pid        echo "服务停止成功,进程ID:${pid}。"    fi}
  • 说明:查找进程,若存在则强制终止,输出停止日志。

4. 查看状态

status() {    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    if [ -z $pid ]; then        echo "服务未运行。"    else        echo "服务运行中,进程ID:${pid}。"    fi}
  • 说明:查询进程状态,返回服务运行信息。

5. 重启程序

restart() {    echo "重启程序中..."    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    if [ ! -z $pid ]; then        kill -9 $pid    fi    start}
  • 说明:终止当前进程后调用start函数,重新启动服务。

6. 调试模式启动

debug() {    if [ -z $ADD_PORT ]; then        ADD_PORT="51135"        echo "默认监听端口为:${ADD_PORT}"    fi    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    if [ ! -z $pid ]; then        kill -9 $pid    fi    nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$ADD_PORT -Dloader.path=lib/ -jar $JAR_NAME > debugOut.log 2>&1 &    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    echo "调试模式启动成功,进程ID:${pid},端口:${ADD_PORT}"}
  • 说明:启动调试模式服务,支持自定义端口,默认为51135。首先终止当前进程,然后重新运行程序。

使用示例

1. 启动服务

sh start.sh start test-1.0.1
  • 输出:Service test-1.0.jar is starting!pid=17827

2. 调试模式启动

sh start.sh debug test-1.0.1 51235
  • 输出:debug Service test-1.0.jar is starting!pid=19134,地址:51235

3. 查看运行状态

sh start.sh status test-1.0.1
  • 输出:Service test-1.0.jar is running. It's pid=19134

注意事项

  • 依赖管理:请确保jarlib文件位于同一目录下。
  • 调试模式:在调试模式下,程序会自动关闭当前运行的服务进程。
  • 进程管理:脚本会自动处理进程终止和重启操作。

如有问题,请参考详细日志文件或联系技术支持。

转载地址:http://aakg.baihongyu.com/

你可能感兴趣的文章
pip 下载慢
查看>>
pip 升级报错AttributeError: ‘NoneType’ object has no attribute ‘bytes’
查看>>
pip 安装opencv-python卡死
查看>>
pip 安装出现异常
查看>>
Pip 安装失败:需要 SSL
查看>>
Pip 安装挂起
查看>>
pip 或 pip3 为 Python 3 安装包?
查看>>
pip 文件损坏导致 pip无法使用 报错 ImportError: cannot import name 'main' from 'pip._int
查看>>
pip 无法从 requirements.txt 安装软件包
查看>>
pip/pip3更换国内源
查看>>
pip3 install PyQt5 --user 失败
查看>>
pip3命令全解析:Python3包管理工具的详细使用指南
查看>>
pip3安装命令重复创建文件‘/tmp/pip-install-xxxxx/package‘失败
查看>>
PIPE 接口信号列表
查看>>
pipeline配置与管理Job企业级实战
查看>>
pipeline项目配置实战
查看>>
Pipenv 与 Conda?
查看>>
QVGA/HVGA/WVGA/FWVGA分辨率屏含义及大小//Android虚拟机分辨率
查看>>
pipreqs : 无法将“pipreqs”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径 正确,然后再试一次。
查看>>
pipy国内镜像的网址
查看>>