通用jar包启动脚本

通用jar包启动脚本

通用jar包启动脚本

  1. 使用方法:

把本脚本和jar包放置在同一目录,并保证该目录下只有一个jar包。
jar包的输出文件名为“nohup.当前目录名”

  1. 运行jar包:

脚本名后跟start|stop|restart|status即可

  1. 脚本内容:
#!/bin/bash
#######################
#脚本使用方法:
#本脚本和jar包在同一目录下,保证当前目录有且只有一个jar包即可。无需修改任何东西。
# Usage: $0 {start|stop|status|restart}
#######################
#可在此处添加需要加载的环境变量
#######################

CurrentPath=`pwd`
CurrentDirName=`basename $(pwd)`
if ls *.jar &> /dev/null ;then
        if [ `ls *.jar | wc -l` -eq 1 ];then
                APP_NAME=`find $CurrentPath -maxdepth 1 -name "*.jar"`
        else
                echo -e "\033[31m------   Error! Too Much JAR Packages In This Directory !\033[0"
                exit 2
        fi
else
        echo -e "\033[31m------   Error! No JAR Package In Current File !\033[0"
        exit 1
fi

is_exist () {
    pid=`ps aux | grep $APP_NAME | grep -v grep | grep "jar$"| awk '{print $2}'`
    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
        nohup java -jar $APP_NAME &> nohup.$CurrentDirName &
    fi
}
stop () {
    is_exist
    if [ $? -eq 0 ];then
        kill  $pid
    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 not running"
    fi
}
case $1 in
    start)
        start;;
    stop)
        stop;;

    restart)
        stop
        start;;
    status)
        status;;
    *)
        echo "Usage: $0 {start|stop|status|restart} "
esac

转载于:https://blog.51cto.com/11975865/2383075

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100964.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 困惑[通俗易懂]

    困惑[通俗易懂]困惑

    2022年4月20日
    48
  • 虚拟货币二维码骗局_数字货币交易骗局套路

    虚拟货币二维码骗局_数字货币交易骗局套路最近,网络上出现了一种新的诈骗模式,对象仍然是比特币。原理很简单,因为比特币等虚拟货币的地址非常长,每次交易如果纯靠手输会比较麻烦,因此很多人都会选择将…

    2025年9月22日
    7
  • C语言爱心代码_c语言代码

    C语言爱心代码_c语言代码c语言-爱心代码的实现#include#include#includeintmain(){floaty,x,z,f;for(y=1.5f;y>-1.5f;y-=0.1f){for(x=-1.5f;x<1.5f;x+=0.05f){

    2022年10月13日
    8
  • JVM成神之路-类加载机制-双亲委派,破坏双亲委派

    概述概念虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接时候用的Java类型。类的生命周期类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载。其中验证、准备、解析统称为连接上图中,加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须严…

    2022年4月16日
    35
  • php 中js跳转页面跳转页面,js跳转代码_PHP页面跳转 Js页面跳转代码[通俗易懂]

    php 中js跳转页面跳转页面,js跳转代码_PHP页面跳转 Js页面跳转代码[通俗易懂]摘要腾兴网为您分享:PHP页面跳转Js页面跳转代码,自动刷宝,中信金通,携程抢票,未来屋等软件知识,以及沃金汇,沃行讯通,securecrt.exe,我的世界变形金刚mod,一票通,农场小分队,手电筒,推币机游戏,善行天下,硬盘mhdd,googlekeep,文件批量更名,明星表情包,服装销售软件,进击的巨人日语等软件it资讯,欢迎关注腾兴网。第一部分:JavaScript跳转方法一:…

    2022年8月13日
    3
  • 【WPF】Toolkit(一个项目)的要点总结

    【WPF】Toolkit(一个项目)的要点总结架构相关1.插件式开发:MEF具体怎么使用可参考百度+Demo(密码:k8ck)2.备份机制(项目特有功能)待续3.镜像机制(项目特有功能)待续4.分模块记录日志(转)非常完善的Log4net详细说明UI相关1.多语言读取系统的显示语言(displayLanguage),显示语言的定义是:假如你的系统现在是中文的,

    2022年10月2日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号