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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 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 
相关文章
|
4月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
370 146
|
5月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
468 11
|
7月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
746 13
|
9月前
|
Java Linux
自定义linux脚本用于快速jar包启动、停止、重启
自定义linux脚本用于快速jar包启动、停止、重启
382 29
|
10月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
1093 25
|
11月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
342 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
989 19
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
2999 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
5574 7
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####

热门文章

最新文章