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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 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!"


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
28天前
|
Java Maven 微服务
springboot项目开启远程调试-jar包
springboot项目开启远程调试-jar包
20 0
|
26天前
|
Java Linux
Linux运行jar并选择配置文件
Linux运行jar并选择配置文件
8 1
|
29天前
|
存储 Java Spring
SpringBoot的 jar 可以直接运行
SpringBoot的 jar 可以直接运行
14 0
|
29天前
|
Java Maven
maven项目导出可执行jar
maven项目导出可执行jar
28 0
|
1月前
|
Java Serverless 测试技术
Serverless 应用引擎常见问题之上传自定义jar包自动vpc启动报错如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
32 4
|
1月前
|
NoSQL Java 应用服务中间件
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
|
1月前
|
Java Shell API
通用Shell脚本执行Spring Boot项目Jar包
通用Shell脚本执行Spring Boot项目Jar包
|
29天前
|
Linux
linux中服务管理
在Linux服务管理中,从传统的System V init到Upstart,再到广泛采用的systemd,管理方式不断发展。systemd以其强大的功能和依赖解决成为现代Linux的核心。`systemctl`是管理服务的关键命令,如启动(`start`)、停止(`stop`)、重启(`restart`)服务及设置开机启动(`enable`)或取消(`disable`)。了解和服务管理,特别是systemd和`systemctl`的使用,对系统管理员至关重要。其他如xinetd用于控制网络服务,而特定环境下有OpenRC等工具。
17 2
|
9月前
|
安全 Ubuntu 网络协议
Linux中的服务管理
Linux系统可以同时运行数百个任务。其中大多数都属于操作系统环境的组成部分,不过可能也会有那么一两个你不需要的**守护进程**。有3种可用于启动守护进程和服务的工具,Linux发行版支持其中任意一种。传统的SysV系统使用/etc/init.d中的脚本。较新的systemd守护进程除了使用/etc/init.d之外,还用到了systemctl调用。还有些发行版使用的是upstart,配置脚本保存在/etc/init中。systemd如今已经取代了SysVinit系统。upstart是由Ubuntu开发并采用的,但是在14.04版中,已经改成了systemd。
109 3
|
10月前
|
Ubuntu 关系型数据库 MySQL
【Linux进阶篇】启动流程和服务管理
【Linux进阶篇】启动流程和服务管理
163 0