[转帖]Linux—微服务启停shell脚本编写模板

linux,服务,shell,脚本,编写,模板 · 浏览次数 : 0

小编点评

**运行脚本的步骤:** 1. 创建一个名为 `run.sh` 的脚本文件。 2. 将 `run.sh` 的路径添加到 `PATH`环境变量中。 3. 使用 `bash` 命令运行脚本。 4. 在脚本中使用 `-s`选项指定要运行的 Java 进程 ID。 5. 使用 `&&` 和 `||` 操作符将不同的命令组合在一起。 6. 使用 `>` 和 `>>` 将输出结果写入 `test.log` 文件中。 7. 使用 `>>` 将错误信息写入 `test.log` 文件中。 8. 使用 `!` 运算符将退出代码显示在终端中。 9. 使用 `kill` 命令运行 `stop.sh` 脚本,并使用 `&` 符号将它放到后台。 **示例脚本:** ```bash #!/bin/bash # 设置 JPDA 文件路径 jar_filejava="/path/to/jar/file.jar" # 设置 debug端口 port="8000" # 设置 Spring Profiles 激活 profile="test" # 创建日志文件 log_file="test.log" # 创建运行脚本 run_script="run.sh" # 创建停止脚本 stop_script="stop.sh" # 创建 pid 文件 pid_file="java.pid" # 在运行脚本之前设置环境变量 export JAVA_HOME="/path/to/java/home" # 运行脚本 nohup -n $run_script & ``` **注意:** * `JAVA_HOME` 环境变量需要包含 Java 运行器的安装路径。 * `stop.sh` 和 `run.sh` 中的 `java.pid` 文件可能因脚本执行环境而有所不同。 * 可以根据需要修改 `jar_filejava`、`port` 和 `profile` 等参数。

正文

https://www.jianshu.com/p/1e1080a39dc5

 

run.sh

#!/bin/bash

if [ -s java.pid ]
then
  echo "重复启动,退出"
  exit 0
fi

jar_file=`ls *.jar | head -n 1`
echo $jar_file

java -Djava.security.egd=file:/dev/./urandom -jar $jar_file > test.log  2>&1 &
echo $! > java.pid

带有debug的run.sh

#!/bin/bash

if [ -s java.pid ]
then
  echo "重复启动,退出"
  exit 0
fi

jar_file=`ls *.jar | head -n 1`
echo $jar_file

java -Djava.security.egd=file:/dev/./urandom -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -jar $jar_file > test.log  2>&1 &
echo $! > java.pid

通过-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000来指定debug端口为8000

指定配置文件的run.sh

#!/bin/bash

if [ -s java.pid ]
then
  echo "重复启动,退出"
  exit 0
fi

jar_file=`ls *.jar | head -n 1`
echo $jar_file

java -Djava.security.egd=file:/dev/./urandom -jar $jar_file --spring.profiles.active=test > test.log  2>&1 &
echo $! > java.pid

如果需要指定某个配置文件,可以通过--spring.profiles.active=test来指定。

stop.sh

#!/bin/bash

if [ -s java.pid ]
then
  kill -9 `cat java.pid` && : > java.pid
fi

使用方式

run.shstop.shxxxx.jar包放同一目录

与[转帖]Linux—微服务启停shell脚本编写模板相似的内容:

[转帖]Linux—微服务启停shell脚本编写模板

https://www.jianshu.com/p/1e1080a39dc5 run.sh #!/bin/bash if [ -s java.pid ] then echo "重复启动,退出" exit 0 fi jar_file=`ls *.jar | head -n 1` echo $jar_f

[转帖]linux 调优各项监控指标小记

https://z.itpub.net/article/detail/8A4E4E96522BD59D45AB5A4CA442EDB3 自开始负责生产环境部署,中间遇到了若干线上环境内存以及CPU的问题。由于微服务以及容器的流行,现在已经可以很方便的使用 K8s + prometheus + gra

[转帖][译] 如何基于 Cilium 和 eBPF 打造可感知微服务的 Linux(InfoQ, 2019)

http://arthurchiao.art/blog/how-to-make-linux-microservice-aware-with-cilium-zh/ 译者序 本文内容来自 2019 年的一个技术分享 How to Make Linux Microservice-Aware with Ci

[转帖]编译实战 | 手摸手教你在Windows环境下运行Redis6.x

原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 哈喽大家好啊,我是没事就愿意瞎捣鼓的Hydra。 不知道有没有小伙伴像我一样,平常开发中用的是windows操作系统,有时候想装点什么软件,一看只支持linux系统,无奈要么启动虚拟机、要么装在云服务器上。 这不前几天又是这样,刚想用一下Red

[转帖]Linux命令拾遗-软件资源观测

原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 这是Linux命令拾遗系列的第三篇,本篇主要介绍Linux中观测软件资源的命令,如ps、netstat、lsof,以及查看进程信息的宝库/proc目录。 本系列文章索引Linux命令拾遗-入门篇Linux命令拾遗

[转帖] Linux命令拾遗-硬件资源观测

原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 这是Linux命令拾遗系列的第四篇,本篇主要介绍Linux中观测硬件资源的命令,如top、vmstat、pidstat、iostat、sar等。 本系列文章索引Linux命令拾遗-入门篇Linux命令拾遗-文本处

[转帖]Linux命令拾遗-动态追踪工具

原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 这是Linux命令拾遗系列的第六篇,本篇主要介绍工作中常用的动态追踪工具strace、arthas、bpftrace等。 本系列文章索引Linux命令拾遗-入门篇Linux命令拾遗-文本处理篇Linux命令拾遗-

[转帖] Linux文本命令技巧(上)

Linux文本命令技巧(上) 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 前一篇我介绍了awk,这是一个全能的文本处理神器,因为它本身就是一门编程语言了,但对于很多场景,使用Linux预设的一些文本处理命令,会更方便快捷,如grep、sed等。本篇就来介绍

[转帖] Linux命令拾遗-入门篇

https://www.cnblogs.com/codelogs/p/16060394.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 之前出过很多和Linux命令有关的文章,但都比较零散,故打算出一个Linux系列文章,一步一步带出Linux中纷繁

[转帖] Linux命令拾遗-软件资源观测

https://www.cnblogs.com/codelogs/p/16060443.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 这是Linux命令拾遗系列的第三篇,本篇主要介绍Linux中观测软件资源的命令,如ps、netstat、lsof,