首页 > 编程语言 >分享自写的一个通用java应用启停脚本

分享自写的一个通用java应用启停脚本

时间:2024-03-20 16:22:56浏览次数:17  
标签:java 自写 ## jar pid echo PROJECT 启停 NAME

##原创转载请标注来源
#!/bin/sh

#定义程序名 及jar包的名(写上你自己的jar包)
PROJECT_NAME=/home/xtgl/a/release-1.0.jar
FILEPATH=/home/xtgl
date=`date +%Y-%m-%d-%H-%M-`
## 编写判断程序是否正在运行的方法
isExist(){
## 首先查找进程号 ,这里需要注意一下,不加{}号的话无法stop
#grep -v sh 是过滤掉本脚本产生的PID (执行的时候 sh....jar会产生)
pid=`ps -ef | grep ${PROJECT_NAME} | grep -v grep |grep -v sh| awk '{print $2}'`
## 如果进程号不存在,则返回0 否则返回1
if [ -z "${pid}" ]; then
return 0
else
return 1
fi
}

## 编写启动程序方法
start(){
## 调用 判断程序是否正在运行的方法
isExist
## 判断方法返回值是否等于0 ,等于则不存在
if [ $? -eq "0" ]; then
echo "${PROJECT_NAME} is starting ......"
##可以按照应用日期命名日志文件
## nohup java -jar ${PROJECT_NAME} > ${filePath}/${date}${PROJECT_NAME}.log 2>&1 &
nohup java -jar ${PROJECT_NAME} >> ${filePath}/a.log 2>&1 &
echo "${PROJECT_NAME} startup success"
else
echo "${PROJECT_NAME} is running, pid=${pid} "
fi
}

## 编写停止程序的方法
stop(){
## 调用 判断程序是否正在运行
isExist
## 判断是否存在,返回值0不存在
if [ $? -eq "0" ]; then
echo "${PROJECT_NAME} is not running ......"
else
echo "${PROJECT_NAME} is running, pid=${pid}, prepare kill it "
kill -9 ${pid}
echo "${PROJECT_NAME} has been successfully killed ......"
fi
}

#输出运行状态
status(){
isExist
if [ $? -eq "0" ]; then
echo "${PROJECT_NAME} is not running."
else
echo "${PROJECT_NAME} is running. pid is ${pid}."
fi
}

## 编写重启方法
restart(){
## 先停止再启动
stop
start
}


## 程序最开始执行的
## 根据用户输入,判断执行方法
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
echo "please enter the correct commands: "
echo "such as : sh startup.sh [ start | stop | status | restart ] xxx.jar"
;;
esac

标签:java,自写,##,jar,pid,echo,PROJECT,启停,NAME
From: https://www.cnblogs.com/liu-note/p/18085506

相关文章

  • 02 JAVA流程控制
    02JAVA流程控制1.用户交互Scannernextline()用的多,next()用的少。nextline()以回车为结束符。也就是说:nextline方法返回的是回车之前的所有字符。可以获得空白。packagecom.mysoft.scanner;importjava.util.Scanner;publicclassDemo02{publicstaticvoidmain......
  • javaday3
    javaday3变量publicclassDemo06{publicstaticvoidmain(String[]args){inta=1;Stringname="xiangqian";charx='X';doublepi=3.14;}}publicclassDemo07{//类变量staticsta......
  • java社区人员疫情信息管理系统(ssm框架毕业设计)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着全球化进程的加速,人类活动频繁,疫情的传播速度和范围也日益扩大。社区作为疫情防控的第一线,其信息管理的重要性不言而喻。然而,传统的社区疫情信息管理......
  • Java学生管理系统
    1.初始菜单:“-------------------------欢迎来到学生管理系统---------------------”“1.添加学生”“2.删除学生”“3.修改学生”“4.查询学生”“5.退出”“请输入您的选择”学生类:属性:id、姓名、年龄、家庭住址添加功能:键盘录入每一个学生信息并添加,需要满足:id唯......
  • Java继承中成员变量和成员方法的访问特点
    1、继承中成员变量的访问特点:就近原则:谁离得近就用谁publicclassFu{Stringname="Fu";}publicclassZiextendsFu{Stringname="Zi";publicvoidziShow(){Stringname="ziShow";System.out.println(name);//这里就近原则,所以是ziSh......
  • 【附源码】java计算机毕设基于语言的在线电子书阅读系统(源码+开题)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展,数字化阅读已成为人们获取知识和信息的重要途径。电子书以其便捷、环保、更新迅速等特点,逐渐替代了传统纸质书籍,成为大众阅读......
  • Java继承中的构造方法和this、super关键字
    一、继承中构造方法的访问特点:1.父类中的构造方法不会被子类继承2.子类中所有的构造方法默认先访问父类中的无参构造,再执行自己为什么:(1)子类在初始化时,有可能会使用父类中的数据,如果父类没有完成初始化,子类将无法使用父类的数据(2)子类初始化之前,一定要调用父类构造方法先完......
  • java lambda简单用法
    一、背景介绍        lambda表达式不算是什么新奇的东西,jdk8诞生也好多年了,但是lambda表达式据我观察,在我多年的开发生涯中,周围同事用的其实不多,具体原因可能还是说不了解,习惯了过去的编程方式等等,其实自己不了解的东西不要抗拒,个人理解都是一个熟悉的过程,熟练以后也......
  • 深入理解Java虚拟机读书笔记
    1.双亲委派模型的兼容性优化    双亲委派模型在jdk1.2才开始,在以前是通过覆盖loadClass()方法来自定义类加载器,但是不做兼容,由于多态性,那么实际上加载时是直接用ClassLoader子类的loadClass()方法,ClassLoader的loadClass()方法不会被调用,所以为了兼容,添加了findClass(),这样自定义的类......
  • 【Java】Excel 读取图片
     一、需求背景:做一个大屏管理系统,基础信息包括管理的应用名称,大屏的截图,通过一个excel批量导入excel的单元格里要插入图片,对应一个大屏应用的信息导入需要读取到大屏截图,至于存哪还没说....二、技术实现Hutool这块没有做图片读取的封装,看了网上的方式都是通过poi原生的api......