linux一键启动和停止多个端口服务脚本:springboot项目打jar包指定多个端口

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: linux一键启动和停止多个端口服务脚本:springboot项目打jar包指定多个端口

场景描述:

springboot项目,有多个yml文件,每个yml文件配置了不同的服务端口

要求:

将springboot打成jar包之后,可以通过脚本命令启动多个服务端口

启动脚本编写

#!/bin/sh
DB2PIDFILE=db2.pid
ORAPIDFILE=ora.pid
PAASPIDFILE=paas.pid
MYSQLPIDFILE=mysql.pid
if [ -f "$DB2PIDFILE" ] && kill -0 $(cat "$DB2PIDFILE"); then
  echo "xxl-job-admin-db2 is already running!"
  exit 1
fi
if [ -f "$ORAPIDFILE" ] && kill -0 $(cat "$ORAPIDFILE"); then
  echo "xxl-job-admin-ora is already running!"
  exit 1
fi
if [ -f "$PAASPIDFILE" ] && kill -0 $(cat "$PAASPIDFILE"); then
  echo "xxl-job-admin-paas is already running!"
  exit 1
fi
if [ -f "$MYSQLPIDFILE" ] && kill -0 $(cat "$MYSQLPIDFILE"); then
  echo "xxl-job-admin-mysql is already running!"
  exit 1
fi
rm -f *.log
nohup java -jar hijob-jdbc-2.3.0.jar --spring.profiles.active=db2 > ./db2.log 2>&1 &
echo $! > $DB2PIDFILE
sleep 5
nohup java -jar hijob-jdbc-2.3.0.jar --spring.profiles.active=oracle > ./oracle.log 2>&1 &
echo $! > $ORAPIDFILE
sleep 5
nohup java -jar hijob-jdbc-2.3.0.jar --spring.profiles.active=paas > ./paas.log 2>&1 &
echo $! > $PAASPIDFILE
sleep 5
nohup java -jar hijob-jdbc-2.3.0.jar --spring.profiles.active=mysql > ./mysql.log 2>&1 &
echo $! > $MYSQLPIDFILE
echo "start succeed!"

启动之后的效果如下:我们看到有五个进程,表示每个yml文件的服务端口都起好了

[root@dbaa-kafka hijob-jdbc]# ll
total 52340
-rw-r--r--. 1 root root   162991 Apr 10 15:16 db2.log
-rw-r--r--. 1 root root        5 Apr 10 14:36 db2.pid
-rw-r--r--. 1 root root 53017534 Apr  7 10:27 hijob-jdbc-2.3.0.jar
-rw-r--r--. 1 root root     7794 Apr 10 14:37 mysql.log
-rw-r--r--. 1 root root        5 Apr 10 14:36 mysql.pid
-rw-r--r--. 1 root root   148349 Apr 10 15:17 oracle.log
-rw-r--r--. 1 root root        5 Apr 10 14:36 ora.pid
-rw-r--r--. 1 root root    85162 Apr 10 15:17 paas.log
-rw-r--r--. 1 root root        5 Apr 10 14:36 paas.pid
-rw-r--r--. 1 root root     1093 Apr  7 10:27 start.sh
-rw-r--r--. 1 root root     1119 Apr  7 10:27 stop.sh
[root@dbaa-kafka hijob-jdbc]# ps -ef|grep hijob-jdbc-2.3.0.jar 
root      2027     1  1 14:36 pts/3    00:00:38 java -jar hijob-jdbc-2.3.0.jar --spring.profiles.active=db2
root      2124     1  1 14:36 pts/3    00:00:41 java -jar hijob-jdbc-2.3.0.jar --spring.profiles.active=oracle
root      2227     1  1 14:36 pts/3    00:00:31 java -jar hijob-jdbc-2.3.0.jar --spring.profiles.active=paas
root      2339     1  1 14:36 pts/3    00:00:29 java -jar hijob-jdbc-2.3.0.jar --spring.profiles.active=mysql
root      4257  1196  0 15:17 pts/3    00:00:00 grep --color=auto hijob-jdbc-2.3.0.jar
[root@dbaa-kafka hijob-jdbc]# 

当然也少不了停止脚本,脚本内容如下:

#!/bin/sh
DB2PIDFILE=db2.pid
echo "db2 pid file is $DB2PIDFILE"
ORAPIDFILE=ora.pid
echo "ora pid file is $ORAPIDFILE"
PAASPIDFILE=paas.pid
echo "paas pid file is $PAASPIDFILE"
MYSQLPIDFILE=mysql.pid
echo "mysql pid file is $MYSQLPIDFILE"
if [ ! -f "$DB2PIDFILE" ] || ! kill -0 "$(cat "$DB2PIDFILE")"; then
  echo "process not running..."
else
  echo "stopping process..."
  DB2PID="$(cat "$DB2PIDFILE")"
  kill -9 $DB2PID
  rm -f "$DB2PIDFILE"
fi
if [ ! -f "$ORAPIDFILE" ] || ! kill -0 "$(cat "$ORAPIDFILE")"; then
  echo "process not running..."
else
  echo "stopping process..."
  ORAPID="$(cat "$ORAPIDFILE")"
  kill -9 $ORAPID
  rm -f "$ORAPIDFILE"
fi
if [ ! -f "$PAASPIDFILE" ] || ! kill -0 "$(cat "$PAASPIDFILE")"; then
  echo "process not running..."
else
  echo "stopping process..."
  PAASPID="$(cat "$PAASPIDFILE")"
  kill -9 $PAASPID
  rm -f "$PAASPIDFILE"
fi
if [ ! -f "$MYSQLPIDFILE" ] || ! kill -0 "$(cat "$MYSQLPIDFILE")"; then
  echo "process not running..."
else
  echo "stopping process..."
  MYSQLPID="$(cat "$MYSQLPIDFILE")"
  kill -9 $MYSQLPID
  rm -f "$MYSQLPIDFILE"
fi
echo "stop succeed!"


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
202 2
|
2天前
|
存储 数据可视化 Java
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
如何在Linux系统下部署和运行Java项目jar包,包括传输文件到Linux、使用nohup命令运行jar包、查看端口状态、杀死进程和查看项目运行状态,以及如何解决“没有主清单属性”的错误。
25 1
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
|
1天前
|
Java 数据库连接 mybatis
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
该文档详细介绍了如何在Springboot Web项目中整合Mybatis,包括添加依赖、使用`@MapperScan`注解配置包扫描路径等步骤。若未使用`@MapperScan`,系统会自动扫描加了`@Mapper`注解的接口;若使用了`@MapperScan`,则按指定路径扫描。文档还深入分析了相关源码,解释了不同情况下的扫描逻辑与优先级,帮助理解Mybatis在Springboot项目中的自动配置机制。
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
|
15天前
|
Linux Python
用python扫描linux开放的端口(3种方式)
这篇文章介绍了三种使用Python实现Linux端口扫描的方法,包括基础版端口扫描、全端口扫描和多线程扫描技术。
31 15
|
2月前
|
Java
Java系列之 解决 项目 jar 包无法上传到Github
该博客文章介绍了解决Java项目中jar包无法上传到Github的问题,通过修改`.gitignore`文件来包含jar包,从而成功添加到上传目录。
Java系列之 解决 项目 jar 包无法上传到Github
|
2月前
|
监控 网络协议 Linux
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
|
2月前
|
网络协议 安全 应用服务中间件
在Linux中,Tomcat8005、8009、8080三个端口的含义?
在Linux中,Tomcat8005、8009、8080三个端口的含义?
|
2月前
|
网络协议 Linux 网络安全
在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
|
2月前
|
开发框架 .NET Linux
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
|
2月前
|
Java Linux Shell
【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题

热门文章

最新文章