shell脚本启动/停用/重启java项目

文章提供了三个Shell脚本,分别用于启动、停用和重启Java应用程序。脚本中详细定义了JVM参数,并通过`ps-ef`命令查找并管理相关进程。启动时,使用`nohup`在后台运行,并将日志输出重定向。停用脚本通过发送SIGTERM和SIGKILL信号优雅地或强制停止进程。重启则先执行停用再启动的过程。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

shell脚本启动/停用java项目

一、启动

#!/usr/bin/env bash
#!/bin/sh
RESOURCE_NAME=xss-admin.jar #设置启动jar文件名
#配置jvm 
JAVA_OPTS="-Xms4048M -Xmx4048M -Xmn2024M -Xss1M -XX:PermSize=512M -XX:MaxPermSize=512M -Duser.timezone=Asia/Shanghai -Dfile.encoding=utf-8"
 
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'App is running.'
else
    echo 'App is NOT running.'
fi
 
rm -f tpid
#nohup java  -Xms2048M -Xmx2048M  -XX:PermSize=256M -XX:MaxPermSize=256M -Duser.timezone=Asia/Shanghai -Dfile.encoding=utf-8  -jar ./$RESOURCE_NAME  >/dev/null 2>&1 &
nohup java $JAVA_OPTS -jar ./$RESOURCE_NAME  --spring.profiles.active=dev > xss-admin.log &
echo $! > tpid
echo Start Success!

tail -f /opt/service/xss/pc/xss-admin.log

二、停用

#!/usr/bin/env bash
#!/bin/sh
RESOURCE_NAME=xss-admin.jar #设置启动jar文件名

tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi

三、重启

这段代码是用来停止并重新启动一个名为"anju-hjl"的Java项目。

首先,使用"ps -ef"命令列出所有正在运行的进程,并通过管道符号"|"将结果传递给下一个命令。然后使用"grep java"过滤出所有包含"java"关键字的进程。接着使用"grep project_name"过滤出包含"anju-hjl"关键字的进程。再使用"grep -v grep"过滤掉包含"grep"关键字的进程。最后使用"awk '{print
2}’"提取出进程ID,并使用"xargs kill -s 9"命令发送强制终止信号(信号编号为9)来杀死这些进程。

接下来,使用"nohup"命令在后台运行一个新的Java进程。该进程使用"/app/jdk1.8.0_92/bin/java"路径下的Java虚拟机来执行一个可执行的jar包(projectname.jar)。同时,通过"−Xms256m"和"−Xmx3024m"参数设置了Java进程的初始堆大小和最大堆大小。另外,通过"–spring.profiles.active=anjuprod"参数设置了Spring框架的活动配置文件为"anjuprod"。最后,通过">
{project_name}.log"将进程的输出重定向到一个日志文件中。

最后一行代码使用"tail -f"命令实时监控名为"${project_name}.log"的日志文件的变化,并将变化的内容输出到终端。这样可以实时查看项目的日志信息。

project_name=anju-hjl
ps -ef | grep java | grep $project_name |grep -v grep | awk '{print $2}' | xargs kill -s 9
nohup /app/jdk1.8.0_92/bin/java -jar -Xms256m -Xmx3024m  ${project_name}.jar --spring.profiles.active=anjuprod > ${project_name}.log &
tail -f /opt/service/iot/hjl/${project_name}.log

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值