博客
关于我
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/

你可能感兴趣的文章
ping 命令的七种用法,看完瞬间成大神
查看>>
Pinia:$patch的使用场景
查看>>
Pinia:$subscribe()的使用场景
查看>>
Pinpoint对Kubernetes关键业务模块进行全链路监控
查看>>
Pinterest 大规模缓存集群的架构剖析
查看>>
pintos project (2) Project 1 Thread -Mission 1 Code
查看>>
PinYin4j库的使用
查看>>
PIP
查看>>
pip install goose-extractor // SyntaxError: Missing parentheses in call to 'print'
查看>>
pip install mysqlclient报错
查看>>
pip install 出现报asciii码错误的解决
查看>>
pip throws TypeError: parse() got an unexpected keyword argument ‘transport_encoding‘ 在尝试安装新软件包时
查看>>
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
查看>>