精华内容
下载资源
问答
  • 在公司应用较少,或线上环境较简单,暂未用容器编排技术仅简单以jar包形式运行的情况,且不希望部署Tomcat、Jboss、Weblogic等容器的情况下,编写常用的shell脚本来方便运维。脚本实现以下命令:启动 : start停止 ...

    在公司应用较少,或线上环境较简单,暂未用容器编排技术仅简单以jar包形式运行的情况,且不希望部署Tomcat、Jboss、Weblogic等容器的情况下,编写常用的shell脚本来方便运维。

    脚本

    实现以下命令:

    启动 : start

    停止 :stop

    重启 : restart

    运行状态 :status

    查看实时日志 : log

    备份 : backup

    备注:脚本会屏蔽部分敏感词,估针对实际情况进行修改即可使用。

    脚本代码

    脚本内容如下,复制修改后保存即可使用(如 : xxx.sh),脚本已有相应的注释应该好理解。

    #!/bin/bash

    #这里可替换为jar包名字

    APP_NAME=xxx-1.0.jar

    #根据实际情况修改参数

    JVM="-server -Xms2g -Xmx2g -Xmn512m -XX:PermSize=128M -XX:MaxNewSize=128m -XX:MaxPermSize=25zh6m -Xss256k -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -Xloggc:/logs/xxx-server/GC/xxx-gc.log"

    #APPFILE_PATH="-Dspring.config.location=/usr/local/config/application.properties"

    #使用说明,用来提示输入参数

    usage() {

    echo "Usage: sh 执行脚本.sh [start|stop|restart|status|log|backup]"

    exit 1

    }

    #检查程序是否在运行

    is_exist(){

    pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `

    #如果不存在返回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

    #nohup java $JVM -jar $APPFILE_PATH $APP_NAME > /dev/null 2>&1

    #后台启动jar包,且控制环境变量,根据实际情况修改吧。

    nohup java $JVM -jar $APP_NAME --spring.profiles.active=prod > /dev/null 2>&1 &

    fi

    }

    #停止方法

    stop(){

    is_exist

    if [ $? -eq "0" ]; then

    kill -9 $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

    }

    #重启

    restart(){

    stop

    start

    }

    #日志

    log(){

    # 输出实时日志

    tail -n 100 -f /logs/fdc-server/fdc-server.log

    }

    #备份

    backup(){

    #根据需求自定义备份文件路径。

    BACKUP_PATH=/usr/local/webapps/backup/xxx-server/

    #获取当前时间作为备份文件名

    BACKUP_DATE=`date +"%Y%m%d(%H:%M:%S)"`

    echo 'backup file ->'$BACKUP_PATH$BACKUP_DATE'.jar'

    #备份当前jar包

    cp -r /usr/local/webapps/$APP_NAME $BACKUP_PATH$BACKUP_DATE'.jar'

    }

    #根据输入参数,选择执行对应方法,不输入则执行使用说明

    case "$1" in

    "start")

    start

    ;;

    "stop")

    stop

    ;;

    "status")

    status

    ;;

    "restart")

    restart

    ;;

    "log")

    log

    ;;

    "backup")

    backup

    ;;

    *)

    usage

    ;;

    esac

    备注:脚本中“xxx”相应的位置都需要进行修改。(当然可以做成参数来控制,多项目可使用,但觉得没必要,请自行修改吧。)

    运行脚本

    修改完脚本后,上传到相应位置及文件权限。

    查看脚本有哪些方法:

    sh xxx.sh

    如下图:

    image.png

    具体命令如下:

    cd /xxxx/xxx

    #启动

    sh xxx.sh start

    #停止

    sh xxx.sh stop

    #重启

    sh xxx.sh restart

    #运行状态

    sh xxx.sh status

    #查看实时日志

    sh xxx.sh log

    #备份

    sh xxx.sh backup

    至此结束,可根据自己需求去修改。

    展开全文
  • Linux启动jar包,这是一个非常基础的技能。但是涉及的环节也比较多,也容易出错。一路踩坑过来,jar包无法正确启动,原因主要是集中在三个方面:1.Java环境问题如何解决已经在上一篇文章里写的很详细了。2.代码配置...

    Linux下启动jar包,这是一个非常基础的技能。但是涉及的环节也比较多,也容易出错。一路踩坑过来,jar包无法正确启动,原因主要是集中在三个方面:

    1.Java环境问题

    如何解决已经在上一篇文章里写的很详细了。

    2.代码配置问题

    3.Linux权限问题

    主要是谈谈第二点和第三点怎么解决

    对于代码配置问题,首先要认识到开发环境和正式环境是有区别的,开发环境一般是windows或者MAC,服务器一般都是Linux。开发环境还有开发工具,一个jar包能在开发工具里启动正常,不一定脱离了开发工具就能启动。所以一个程序写好了,不要想当然的觉得扔到服务器上也能正常运行。

    在springboot中首先就要配置好Spring Boot Maven plugin,这样你才能打成一个正常的jar包。不会抛出no main manifest attribute, in xxxx-0.0.1-SNAPSHOT.jar这样的异常。

    在pom.xml中配置,代码如下:

    org.springframework.boot

    spring-boot-maven-plugin

    还有,SpringBoot工程一般是作为一个可独立运行的项目,不是作为某个项目的依赖,如果要将一个Springboot项目作为另外一个项目的依赖,需要另外配置,在此不叙述。

    设置好maven插件之后,一般就可以正常启动项目。但是如果是使用nohup命令,还有可能遇到这种情况:

    1240df36bd204db8ec862e1654f31fbe.png

    看起来好像项目已经启动了,还返回了PID,实际上报了一个ignoring input and appending output to 'nohup.out'的错误,这种情况下去查看这个项目的进程会发现实际上是没有的,也就是说这个项目并没有正常启动。

    出现这种情况的原因是对nohup.out日志没有写入权限,因为你执行nphup命令就会产生日志,日志默认就输出到nohup.out。而实际上给nohup.out赋权限也没解决的了。经过查找资料,最好的解决办法就是让输出的日志输出到一个有权限的地方,即不要简简单单的执行nohup xxx,而是 nohup  xxx>/dev/null 2>&1 去执行,xxx就是你需要执行的脚本,样例如下:

    nohup java -jar chapter063-0.0.1-SNAPSHOT.jar>/dev/null 2>&1 --server.port=8080 &

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    以上就是我需要执行的脚本

    以上三个问题就是最近在服务器启动jar包遇到的问题整理以及解决办法。

    执行启动命令:

    8d61a3fd72197c89a00882eacd3a28de.png

    再查看进程:

    13bf6c2a54394f4bbe9dde6bf5be2ef3.png

    完美。

    展开全文
  • Linux环境下运行jar文件 方式一: 命令:java -jar xxxx.jar 特点:当前ssh窗口被锁定,可按ctrl+c打断程序运行,或直接关闭窗口,程序退出。 方式二: 命令:java -jar xxxx.jar & 特点:&表示...

    在Linux环境下运行jar文件

    方式一:

           命令 java -jar xxxx.jar

           特点:当前ssh窗口被锁定,可按ctrl+c打断程序运行,或直接关闭窗口,程序退出。

    方式二:

           命令java -jar xxxx.jar &

           特点&表示在后台运行。当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。

    方式三:

           命令nohup java -jar xxxx.jar &

           特点nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。

    方式四:

           命令nohup java -jar xxxx.jar >/log.file &

           特点:将日志输出到log.file指定的文件内。

    展开全文
  • 第一步:进入到jar包所在的目录cd /data/tax-support-web/第二步:输入命令启动jar包参数详解:1.-Xms512m 项目启动时的内存大小2.-Xmx2048m 项目运行时支持的最大内存3.--server.port=9041 启动时的项目端口号4....

    第一步:进入到jar包所在的目录

    cd /data/tax-support-web/
    99a6b39c29ad259f309399777aa109a4.png

    第二步:输入命令启动jar包

    参数详解:

    1.-Xms512m 项目启动时的内存大小2.-Xmx2048m 项目运行时支持的最大内存3.--server.port=9041 启动时的项目端口号4.以:> /dev/null 2>&1 & 结尾 输出日志到空文件,不打印启动日志5.以:&  结尾 输出启动日志到nohup.out6.可通过:tail -f nohup.out  查看详情内容7.--spring.profiles.active=prod 启动时用的配置文件8.--apollo.meta=  阿波罗对应的命令9.-Dlogback.log.home=logs/set1  日志输入文件地址

    方式一:打印日志到对应日志目录

    nohup java -Xms256m -Xmx512m -jar -Dlogback.log.home=logs/set1 tax-support-task-0.0.1-SNAPSHOT.jar --spring.profiles.active=set1 > /dev/null 2>&1 &

    方式二:打印启动日志到nohup.out

    nohup java -Xms512m -Xmx2048m -jar tax-support-web-0.0.1-SNAPSHOT0421.jar --server.port=9041 &

    方式三:apollo方式启动命令

    nohup java -Xms512m -Xmx2048m -jar manual-task-web-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod --apollo.meta=http://172.20.30.100:8088 &

    第三步:到此结束,谢谢!

    查看启动成功的服务:ps -ef|grep tax-support-web
    展开全文
  • linux环境下,批量启动程序jar包
  • Linux下正确启动jar包

    2019-10-11 14:32:45
    Linux启动jar包,这是一个非常基础的技能。但是涉及的环节也比较多,也容易出错。一路踩坑过来,jar包无法正确启动,原因主要是集中在三个方面: 1.Java环境问题 如何解决已经在上一篇文章里写的很详细了。 2....
  • nohupjava-jarinterSection-0.0.1-SNAPSHOT.jar--server.port=8088>interSection-0.0.1-SNAPSHOT.log& nohup:添加nohup,可以切换到后台运行 port:指定端口号 > xxx.log :添加日志 以& 结束 -...
  • Linux环境jar包启动与关闭的几种方式jar包启动方式一方式二方式三方式四jar的关闭1、查看某端口占用的线程的pid2、如果忘了端口号,可以通过如下命令来查看当前运行的jar包程序进程号关闭进程 jar包启动 方式...
  • Linux环境下以命令和脚本方式启动jar包 一、以命令方式启动jar包 1、方式一 java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出。 2、方式二 // 那如何让窗口...
  • Linux环境启动jar包的shell

    千次阅读 2018-04-08 17:47:27
    #! /bin/sh name="beautifulDistrict" Xmx=1024m Xms=1024m Xmn=512m PermSize=256m MaxPermSize=512m pid=${name}"...^\${name}.*jar$" | sort -r | head -n 1` start()...
  • 一、启动jar包Linux 运行jar包命令如下:方式一:java -jar shareniu.jar特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出那如何让窗口不锁定?方式二java -jar shareniu.jar &&...
  • Linux 运行jar包命令如下:方式一:Java-jar shareniu.jar特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出那如何让窗口不锁定?方式二java -jar shareniu.jar &&代表在后台...
  • /bin/bash#java env#shell脚本有时候调用linux环境变量会有问题,所以这里还是把用到的java环境再设置一下export JAVA_HOME=/usr/local/jdk1.7#app name 为了确保脚本通用APP_NAME=lagou-serviceSERVICE_DIR=/home...
  • linux系统,你认为合理的地方创建一个目录,可以用来存放所有项目的jar包,也可以每一个项目创建一个目录存放单独的jar包。 # 解释:新建projectName目录 命令:mkdir projectName # 解释:新建日志
  • #在/etc/profile 文件打开最下面的就是你服务器上的JAVA环境 复制粘贴到脚本即可 vim /etc/rc.local #编辑开机启动文件 在最后一行加入sh脚本所在目录 chmod +x /etc/rc.local #授予文件执行权限 chmod +x /soft/...
  • 问题描述:springboot打包成jar包部署到linux服务器,部署报错如下所示:问题排查:排查一分析:idea启动正常,本地jar包启动也正常,初步断定可能是JVM初始化内存不足导致的内存溢出。1) free -m 发现free空闲空间...
  • Linux环境下后台启动jar包,常用2中方式(screen和nohup ): 1、screen: 先screen -dR bbb进入新会话,然后java -jar bbb.jar -Xmx1024m -Xms64m 2、nohup: 脚本如下 #!/bin/bash #这里可替换为你自己的执行程序...
  • springboot_jar包Linux环境下部署启动报错OutOfMemoryError排查解决问题描述:springboot打包成jar包部署到linux服务器,部署报错如下所示:问题排查:排查一分析:idea启动正常,本地jar包启动也正常,初步断定可能...
  • Linuxjar包指定端口启动并记录日志: nohup java -jar -Dserver.port=38080 group-buying-0.0.1-SNAPSHOT.jar >log.log & 启动时,指定正式或者测试环境 nohup java -jar /opt/jar/group-buying.jar --...
  • Windows 10和Linux脚本启动jar包服务器,并设置开机启动现在好多Java服务和应用都是用jar启动,jar打包成的里面会直接带有tomcat,所以可以直接启动,但是如何通过脚本启动并且设置成开机自启动这样可以省很多事情。...
  • linuxjar包的开机自动启动

    千次阅读 2018-11-12 17:27:20
    因为这个消息转发就是接入SDK,然后对消息进行处理,处理完毕之后按着C#程序员给我的格式,对处理完毕的消息进行类型转换并json一下,然后发送到MQ队列,很简单,所以就打算用jar包的形式做后台跑在linux服务器上,...
  • nohup java -jar xxx.jar --spring.profiles.active=DEV > xxx-logs.txt &

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 467
精华内容 186
关键字:

linux启动jar包环境

linux 订阅