提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
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