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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 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!"


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
2月前
|
Java 测试技术
抖音点赞脚本,直播间作品批量点赞,jar插件代码分享
实现使用了Selenium WebDriver自动化测试框架来模拟浏览器操作。代码包含登录功能
|
2月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
284 13
|
2月前
|
Java 数据安全/隐私保护
阿里旺旺群发器,淘宝阿里旺旺私信群发工具,卖家自动发私信脚本【jar源码】
这段代码实现了一个模拟的阿里旺旺群发工具框架,包含核心发送功能、配置管理和联系人管理模块
|
3月前
|
XML JSON 监控
抢单脚本插件辅助,T3出行曹操阳光高德网约车滴滴,jar开发移动端
完整的GUI界面、系统托盘支持、配置管理、声音提醒和震动提醒功能。主程序通过MonitoringThread定期检查
|
4月前
|
Java Linux
自定义linux脚本用于快速jar包启动、停止、重启
自定义linux脚本用于快速jar包启动、停止、重启
243 29
|
11月前
|
运维 资源调度 监控
|
8月前
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
464 64
SpringBoot项目打war包流程
|
6月前
|
人工智能 自然语言处理 Java
对话即服务:Spring Boot整合MCP让你的CRUD系统秒变AI助手
本文介绍了如何通过Model Context Protocol (MCP) 协议将传统Spring Boot服务改造为支持AI交互的智能系统。MCP作为“万能适配器”,让AI以统一方式与多种服务和数据源交互,降低开发复杂度。文章以图书管理服务为例,详细说明了引入依赖、配置MCP服务器、改造服务方法(注解方式或函数Bean方式)及接口测试的全流程。最终实现用户通过自然语言查询数据库的功能,展示了MCP在简化AI集成、提升系统易用性方面的价值。未来,“对话即服务”有望成为主流开发范式。
5024 7
|
7月前
|
Java Maven 开发者
编写SpringBoot的自定义starter包
通过本文的介绍,我们详细讲解了如何创建一个Spring Boot自定义Starter包,包括自动配置类、配置属性类、`spring.factories`文件的创建和配置。通过自定义Starter,可以有效地复用公共配置和组件,提高开发效率。希望本文能帮助您更好地理解和应用Spring Boot自定义Starter,在实际项目中灵活使用这一强大的功能。
503 17
|
7月前
|
Java 应用服务中间件 Maven
SpringBoot项目打包成war包
通过上述步骤,我们成功地将一个Spring Boot应用打包成WAR文件,并部署到外部的Tomcat服务器中。这种方式适用于需要与传统Servlet容器集成的场景。
480 8

热门文章

最新文章