一次shell脚本的练习案例

本文详细介绍了一种用于启动微服务的Shell脚本,包括停止现有进程、更新应用程序、设置JVM参数及日志配置。此外,还提供了一个批量启动多个微服务的脚本实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 启动微服务的脚本:

#! /bin/sh
set -m
app_path=$(pwd)
echo app path is $app_path

# 找到tomcat的进程id
app_pid=$(ps -ef|grep $app_path|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
if [ "$app_pid" ];then
  echo app process id is $app_pid
  # 杀掉app进程
  if
    kill -9 $app_pid
  then
    echo kill app process success
  else
   echo kill app process fail
  fi
else
  echo app is already dead
fi
appname=gate
jarname=sale-${appname}-1.0.0-SNAPSHOT.jar
exejarpath=$(pwd)/${jarname}
consolelog=$(pwd)/log.out
cp -pf /home/zntg/szkingdom/jarhome/${jarname} ./
java -server -Djava.security.egd=file:///dev/urandom -Xms256m -Xmx512m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -XX:LargePageSizeInBytes=64m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Dfile.encoding=UTF-8 -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:SurvivorRatio=20 -XX:+CMSPrecleaningEnabled -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./dumplogs -Xloggc:./gc.log -Djava.net.preferIPv4Stack=true -jar ${exejarpath} --logging.config=./logback.xml > ${consolelog} 2>&1 &
tail -f ${consolelog}


 批量启动的脚本:

cd /home/zntg/szkingdom/master
./startup-master.sh &
sleep 30s
./startup-right.sh &
cd /home/zntg/szkingdom/autotask
./startup-autotask.sh &
sleep 90s
# 90秒后 杀死所有的tail -f log.out的进程
echo "ps -ef|grep log.out|awk '{print $2}'|xargs -i kill -9 {}"
ps -ef|grep log.out|awk '{print $2}'|xargs -i kill -9 {}

& 挂起当前shell,后台运行

sleep 30s 休眠30秒

sleep 10m休眠10分钟

sleep  1h 休眠1小时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值