shell脚本启动、停止Java jar包运行

该文章介绍了一对Bash脚本,用于检查和管理一个名为java-project的Java应用程序。启动脚本startup.sh会检查应用是否运行,若未运行则使用nohup启动,配置了内存参数和环境变量。停止脚本shutdown.sh则通过PID检测并终止进程,提供停止状态反馈。

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

 启动脚本 startup.sh

#!/bin/bash

PROJECTNAME=java-project

pid=`ps -ef |grep $PROJECTNAME |grep -v "grep" |awk '{print $2}'`

if [[ $pid ]]; then

  echo "$PROJECTNAME is running and pid is $pid"

else

   echo "Success to start $PROJECTNAME ..."

   # nohup java -Xms200m -Xmx250m  -jar $PROJECTNAME.jar  >> server.out  2>&1 &
   nohup java -Xms512m -Xmx2048m -Dfile.encoding=utf-8 -jar $PROJECTNAME.jar  --spring.profiles.active=prod -Dspring.config.location=config/application.properties >> server.out  2>&1 &
fi

 这段代码是一个bash脚本,主要用于检测一个名为java-project的Java应用程序是否在运行,如果没有运行则启动它。

nohup:表示不受终端关闭影响,程序可以在后台运行。

java:表示要运行的是Java程序。

-Xms512m:表示设置Java虚拟机的初始堆内存为512MB。

-Xmx2048m:表示设置Java虚拟机的最大堆内存为2048MB。

-Dfile.encoding=utf-8:表示设置文件编码为UTF-8。

-jar $PROJECTNAME.jar:表示要运行的Java程序的jar包文件。

--spring.profiles.active=prod:表示设置Spring的profile为prod,指定程序的运行环境为生产环境。

-Dspring.config.location=config/application.properties:表示指定Spring的配置文件的位置为config/application.properties。

>> server.out  2>&1:表示将程序的标准输出和标准错误输出都重定向到server.out文件中。

停止脚本 shutdown.sh

#!/bin/bash

PROJECTNAME=java-project

pid=`ps -ef |grep $PROJECTNAME |grep -v "grep" |awk '{print $2}' `

if [[ $pid ]]; then

  echo "$PROJECTNAME is running on pid $pid"

  kill -9 $pid

  if [[ $? -eq 0 ]];then

      echo "sucess to stop $PROJECTNAME "

  else

      echo "fail to stop $PROJECTNAME "

  fi

fi

检测名为java-project的进程是否正在运行,并将其PID保存在变量pid中。如果有正在运行的进程,则pid将保存对应的PID;如果没有正在运行的进程,则pid将为空。

如果变量pid存在,则输出"$PROJECTNAME is running on pid $pid",其中$PROJECTNAME表示进程的名称,$pid表示进程的PID。

执行 杀死进程命令 kill -9 $pid

如果上一个命令的退出状态码为0,则输出"sucess to stop $PROJECTNAME",表示成功停止了进程。

如果上一个命令的退出状态码不为0,则输出"fail to stop $PROJECTNAME",表示停止进程失败。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值