#!/bin/bash#description: 重启我的java 服务appName=ruoyi-admin.jarport=9001# 杀死指定 java进程ps -ef|grep java| grep ${appName}|grep -v grep|cut -c 9-15|xargs kill -9 >/dev/null 2>&1nohup java -jar ${appName} --server.port=${port}>> admin.out & sudo tail -f admin.out # nohup java -jar ruoyi-admin.jar >> /dev/null 2>&1 &
#!/bin/bash#设置环境变量#export JAVA_HOME=/root/uhome/jdk/jdk1.8#export JRE_HOME=${JAVA_HOME}/jre#export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib#export PATH=${JAVA_HOME}/bin:$PATH#这里可替换为你自己的执行程序,其他代码无需更改APP_NAME=portal-0.0.1-SNAPSHOT.jarLOG_PATH=./log/portal_console_`date +'%Y-%m-%d'`.txtAPP_PORT=9998#使用说明,用来提示输入参数usage() { echo "Usage: sh java_task.sh [start|stop|restart|status]" exit 1}#检查程序是否在运行#grep -v反选匹配 awk指定文件某一行is_exist(){ pid=`sudo netstat -ntlp | grep "${APP_PORT}" | awk '{print $7}' | awk -F '/' '{print $1}'` #如果不存在返回1,存在返回0 if [ -z "${pid}" ]; then return 1 else return 0 fi}#启动方法start(){ is_exist if [ $? -eq 0 ]; then echo "${APP_NAME} is already running. pid=${pid}" else sudo nohup java -jar ${APP_NAME} >> ${LOG_PATH} & sudo tail -f ${LOG_PATH} fi}#停止方法stop(){ is_exist if [ $? -eq "0" ]; then sudo kill -9 $pid sleep 3 status else echo "${APP_NAME} is not running" fi }#输出运行状态status(){ is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is stop and not running." fi}#重启restart(){ stop sleep 5 start}#根据输入参数,选择执行对应方法,不输入则执行使用说明case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) usage ;;esac