通用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

时间: 2024-10-03 09:29:21

通用jar包启动脚本的相关文章

jar 包启动脚本

1 #!/bin/bash 2 3 JAVA_HOME=/usr/java/default 4 5 #java虚拟机启动参数 6 JAVA_OPTS="-server -Xms800m -Xmx800m -Xmn256m -Xss256k -XX:PermSize=256M -XX:MaxPermSize=512M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -XX:GCTimeRatio=19 -Xnoclassgc -XX:+DisableE

jar包启动失败 java Name or service not known解决方案

本人在生产环境中的一台机器使用了写好的jar包的启动脚本发现启动不了jar包,然后自己使用java命令单独启动jar包,出现以下报错 [email protected]:/etc/init.d# java -Dfile.encoding=UTF-8 -Xmx2048M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=30113 -Dcom.sun.management.jmxremote.authenticat

Ops:jar包启动关闭脚本

目录 简介 环境介绍 start.sh启动脚本 stop.sh关闭脚本 参考文档 简介 公司开发架构为java语言的rpc dubbo架构,将功能分解为各个模块,模块较多,发布到环境上的应用为编译后的jar包和配置文件,以及启动关闭jar包的shell脚本.之前经常会出现进程启动不了,或程序启动了多个的情况,此次,做了优化,结构比较严谨,代码量少,就不放到github上了,在这里做个分享,希望对你有用. 环境介绍 此脚步使用场景需要标准化环境的要求,所有jar皆可使用该脚本使用,通用性良好. j

Centos7.2从github拉代码以jar包启动

1,新建一个job 2,配置git下载地址 3,配置build后执行的脚本 4,脚本执行过程会报没有权限,因为jenkins默认用户是jenkins,改成root vi /etc/sysconfig/jenkins 5,脚本如下: echo "脚本开始执行"path=$1cd $pathfilename=$(ls *jar)echo $filenameecho "杀死原来的进程开始"pid=`ps -ef | grep $filename | grep -v gre

jar包部署脚本

部署一个名为xxx的jar包,输出到out.log,只需要准备以下脚本start.sh #!/bin/sh echo " =====关闭Java应用======" PROCESS=`ps -ef |grep java |grep -v grep|grep xxx.jar|awk '{print $2}'` for i in $PROCESS do echo "Kill the $1 process [ $i ]" kill -9 $i done echo "

使用assembly打出的独立可执行jar包启动时报错spring错误的解决方法

项目开发使用dubbo,想把服务打成可执行jar包,并将所有的依赖也打包到这个jar文件中,工程依赖使用了spring等,在使用maven的assembly打包成独立可执行的jar包后,在执行时报如下错误:Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace      网上对这个问题也有提及,这是assembly的一个bug.参见:http://jira.codehaus.

Spring Boot(2):通过jar包启动

我们通过创建一个可以在Production env中运行的完全自包含的可执行jar文件来完成我们的示例.可执行jar(有时也称为"fat jars")是包含您编译的类以及您的代码需要运行的所有jar依赖项的归档文件. 本例是在 Spring Boot(1):Guide 的基础上继续写的. (1) 在Maven中添加以下依赖: 1 <!-- 可以打成可运行的jar包 --> 2 <build> 3 <plugins> 4 <plugin>

【调试】Idea如何远程debug之SpringBoot jar包启动

一.Java -jar启动添加如下参数 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9852 -Xdebug是通知JVM工作在DEBUG模式下(这里不加也是可以的) -Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境 transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式 server参数是指是否支持在server模式的VM中 su

jar包重启脚本-restart.sh

#!/bin/sh PROJECT_PATH=/var/www/ PROJECT_NAME=demo.jar PROJECT_ALL_LOG_NAME=logs/demo-all.log # stop process tpid=`ps -ef|grep $PROJECT_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' # 是先关闭和其有关的程序,再将其关闭 k