一个启动脚本例子

复制代码
#!/bin/bash
DATE=$(date +%Y%m%d)

SOURCE="abc.jar"
TARGET="backup/abc.jar.jew.$DATE"

if [ -f "$SOURCE" ]; then
    cp "$SOURCE" "$TARGET"
fi

rm -f abc.jar
mv abc_1.jar abc.jar

pidNum=`ps -ef | grep $SOURCE | grep -v "grep"|awk '{print $2}'`
if [ "$pidNum" = "" ];then
	echo "not"
else
	echo "pid : $pidNum"
	kill -15 $pidNum
	echo "successfully"
fi

nohup java -jar abc.jar > log.file 2>&1

后端语言java

#!/bin/bash

DATE=$(date +%Y%m%d) #输出当前日期,赋值给DATE变量,格式为20240627

SOURCE="abc.jar" #当前jar名字赋值SOURCE变量

TARGET="backup/abc.jar.jew.$DATE" #backup路径下abc.jar加当前日期后缀,备份

if [ -f "$SOURCE" ]; then #-f:判断后边的路径是否是一个常规文件。如果SOURCE存在

cp "SOURCE" "TARGET" #将SOURCE复制到TARGET,后缀有当前日期

fi #语句结尾

rm -f abc.jar #强制删除abc.jar

mv abc_1.jar abc.jar #将abc_1.jar重命名为abc.jar

pidNum=`ps -ef | grep SOURCE \| grep -v "grep"\|awk '{print 2}'`

#ps -ef :查看正在运行的所有进程的完整信息;|:在这个结果的基础上;grep SOURCE:查找文件里含有SOURCE(abc.jar)的信息;\|:在这个结果的基础上;grep -v "grep":查找并去掉含有grep的进程;\|:在这个结果的基础上;awk '{print 2}':格式化文本信息,输出第二个字段值,也就是进程号,赋值给pidNum。

if [ "$pidNum" = "" ];then #如果进程号为空(就证明当前没有运行,可以直接启动)

echo "not"

else #不为空,有进程运行

echo "pid : $pidNum" #输出进程号

kill -15 $pidNum #退出进程

echo "successfully" #提示退出进程成功

fi #语句结尾

nohup java -jar abc.jar > log.file 2>&1

相关推荐
澈2079 小时前
STL迭代器:容器遍历的万能钥匙
开发语言·c++
leaves falling10 小时前
Linux 基础指令完全指南 —— 从入门到熟练
linux·运维·服务器
AI人工智能+电脑小能手10 小时前
【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征
java·开发语言·后端·面试
geovindu10 小时前
go: Strategy Pattern
开发语言·设计模式·golang·策略模式
276695829210 小时前
阿里最新acw_sc__v2 分析
开发语言·python·acw_sc__v2·acw_sc__v2逆向·acw_sc__v2算法·acw_sc__v2算法分析·cookie逆向
dog25010 小时前
圆锥曲线和二次曲线
开发语言·网络·人工智能·算法·php
AI人工智能+电脑小能手11 小时前
【大白话说Java面试题】【Java基础篇】第25题:JDK1.8的新特性有哪些
java·开发语言·后端·面试
charlie11451419111 小时前
嵌入式Linux驱动开发——新字符设备驱动 API 概览
linux·运维·驱动开发
开发小程序的之朴11 小时前
基于Go语言的企业级CMS系统架构设计与性能分析——以AnQiCMS为例
开发语言·golang·系统架构
♛识尔如昼♛11 小时前
C 进阶(2) - 文件I/O
linux·文件i/o