• 当前位置: 首 页 > 教育百科 > 学历/技能 > 正文

    Centos7设置多个jar包开机自启动

    :2023年08月25日
    CSDN

    公司项目中,centos7服务器每次开机后,jar包都需要一个个输入指令,手动开启,非常繁琐。参考大佬的文档后,整理以下步骤:

    公司项目中,centos7服务器每次开机后,jar包都需要一个个输入指令,手动开启,非常繁琐。参考大佬的文档后,整理以下步骤:

    1.需要开机自启动的jar包列表如下:

    thinvent-auth.jar
    thinvent-gateway.jar
    thinvent-iot-boot.jar
    thinvent-modules-system.jar
    thinvent-modules-file.jar12345

    2.创建自启脚本jar_auto.sh

    在/etc/rc.d/init.d目录下创建jar_auto.sh文件

    vim /etc/rc.d/init.d/jar_auto.sh1

    脚本内容如下:

    自启动脚本内容:

    #!/bin/bash#配置jdk的路径export JAVA_HOME=/usr/local/java/jdk1.8.0_161   #此处为我的java环境路径,需要改为自己的JDK路径export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
     #有时需要把jar包延时启动(比如博主不设置延时启动jar,nacos会提示拒绝连接)
    #延时30S运行jar包,需要延时启动则放开sleep注释行 (sleep+数字,表示延迟多少秒启动)
    #sleep 30#配置jar包启动的路径 日志生成路径  nohup表示静默启动,不在窗口显示启动日志
    nohup java -jar /usr/local/tomcat/jar/thinvent-auth.jar(jar包所在路径,改为自己的) > /usr/local/tomcat/jar/thinvent-auth.log&(日志生成路径,改为自己的)nohup java -jar /usr/local/tomcat/jar/thinvent-gateway.jar > /usr/local/tomcat/jar/thinvent-gateway.log&nohup java -jar /usr/local/tomcat/jar/thinvent-iot-boot.jar > /usr/local/tomcat/jar/thinvent-iot-boot.log&nohup java -jar /usr/local/tomcat/jar/thinvent-modules-system.jar > thinvent-modules-system.log&nohup java -jar /usr/local/tomcat/jar/thinvent-modules-file.jar > /usr/local/tomcat/jar/thinvent-modules-file.log&1234567891011121314151617

    注意:如果jar包配置文件没有配置运行的端口,需要指定jar运行的端口,添加 --server.port=jar运行端口:

    nohup java -jar /usr/local/tomcat/jar/thinvent-auth.jar --server.port=18070 > /usr/local/tomcat/jar/thinvent-auth.log&1

    因博主的jar包内配置文件已指定jar程序运行的端口,所以在脚本中不需要再指定运行的端口!!!

    2.1内存优化

    注意:多个jar进程启动时,如果进程过多或者服务器本身内存不大,会占用较多内存,如果不进行优化会导致服务器内存爆表,服务器卡顿严重,因此强烈建议对jar运行内存进行优化。
    以上脚本在实际项目中占用了过多内存,导致服务器内存直接占用100%,导致其他进程和应用无法启动。

    优化方法为:在jar包的启动脚本中,限制jar包占用的内存。强烈建议将所有的jar启动脚本改为以下形式:

    nohup java -jar -Xms1024M -Xmx1024M -XX:PermSize=512M -XX:MaxPermSize=512M jar包名.jar > jar启动日志.log&1

    优化详解:
    1、-Xms :表示java虚拟机堆区内存初始内存分配的大小,通常为操作系统可用内存的1/64大小即可,但仍需按照实际情况进行分配。
    2、-Xmx: 表示java虚拟机堆区内存可被分配的最大上限,通常为操作系统可用内存的1/4大小。
    3、-XX:PermSize:表示非堆区初始内存分配大小,其缩写为permanent size(持久化内存)。
    4、-XX:MaxPermSize:表示对非堆区分配的内存的最大上限。即jar进程启动后可占用服务器的最大内存。

    项目实际脚本如下所示(请根据自己的JDK版本,配置jar启动脚本):

    ----------------------------注意:以下脚本为JDK8版本以下适用----------------------------

    #!/bin/bash
    #配置jdk的路径
    export JAVA_HOME=/usr/local/java/jdk1.8.0_161   #此处为我的java环境路径,需要改为自己的JDK路径
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
     
    #有时需要把jar包延时启动(比如博主不设置延时启动jar,nacos会提示拒绝连接)
    #延时30S运行jar包,需要延时启动则放开sleep注释行 (sleep+数字,表示延迟多少秒启动)
    #sleep 30#配置jar包启动的路径 日志生成路径  nohup表示静默启动,不在窗口显示启动日志
    nohup java -jar -Xms1024M -Xmx1024M -XX:PermSize=512M -XX:MaxPermSize=512M /usr/local/tomcat/jar/thinvent-auth.jar(jar包所在路径,改为自己的) >/usr/local/tomcat/jar/thinvent-auth.log&(jar日志生成路径,改为自己的)nohup java -jar -Xms1024M -Xmx1024M -XX:PermSize=512M -XX:MaxPermSize=512M /usr/local/tomcat/jar/thinvent-gateway.jar > /usr/local/tomcat/jar/thinvent-gateway.log&nohup java -jar -Xms1024M -Xmx1024M -XX:PermSize=512M -XX:MaxPermSize=512M /usr/local/tomcat/jar/thinvent-iot-boot.jar > /usr/local/tomcat/jar/thinvent-iot-boot.log&nohup java -jar -Xms1024M -Xmx1024M -XX:PermSize=512M -XX:MaxPermSize=512M /usr/local/tomcat/jar/thinvent-modules-system.jar > thinvent-modules-system.log&nohup java -jar -Xms1024M -Xmx1024M -XX:PermSize=512M -XX:MaxPermSize=512M /usr/local/tomcat/jar/thinvent-modules-file.jar > /usr/local/tomcat/jar/thinvent-modules-file.log&1234567891011121314151617

    如果服务器内存不大,可以继续减小分配的内存(内存大小一般为1024的倍数),如下:

    java -jar -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxPermSize=256M1

    作用是给jar包分配1024M的最大内存,初始运行内存为256M,当jar包运行后占用内存达到分配最大内存(1024M)的70%时,将会释放jar包的内存空间,让jar包继续运行。(个人理解,不对之处请谅解)


    ----------------------------注意:以下脚本为JDK版本大于等于JDK8时适用----------------------------

    #!/bin/bash
    #配置jdk的路径
    export JAVA_HOME=/usr/local/java/jdk1.8.0_161   #此处为我的java环境路径,需要改为自己的JDK路径
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
     
    #有时需要把jar包延时启动(比如博主不设置延时启动jar,nacos会提示拒绝连接)
    #延时30S运行jar包,需要延时启动则放开sleep注释行 (sleep+数字,表示延迟多少秒启动)
    #sleep 30#配置jar包启动的路径 日志生成路径  nohup表示静默启动,不在窗口显示启动日志
    nohup java -jar -Dfile.encoding=utf-8 -Xms1024M -Xmx1024M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M /usr/local/tomcat/jar/thinvent-auth.jar(需运行的jar包所在路径,改为自己的) >/usr/local/tomcat/jar/thinvent-auth.log&(jar日志生成路径,改为自己的)nohup java -jar -Dfile.encoding=utf-8 -Xms1024M -Xmx1024M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M /usr/local/tomcat/jar/thinvent-gateway.jar > /usr/local/tomcat/jar/thinvent-gateway.log&nohup java -jar -Dfile.encoding=utf-8 -Xms1024M -Xmx1024M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M /usr/local/tomcat/jar/thinvent-iot-boot.jar > /usr/local/tomcat/jar/thinvent-iot-boot.log&nohup java -jar -Dfile.encoding=utf-8 -Xms1024M -Xmx1024M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M /usr/local/tomcat/jar/thinvent-modules-system.jar > thinvent-modules-system.log&nohup java -jar -Dfile.encoding=utf-8 -Xms1024M -Xmx1024M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M /usr/local/tomcat/jar/thinvent-modules-file.jar > /usr/local/tomcat/jar/thinvent-modules-file.log&1234567891011121314151617

    加入encoding=utf-8的作用是将编码格式转为UTF-8格式,避免中文乱码


    3.为jar_auto自启动脚本赋予执行权限

    chmod +x 命令表示将该文件设置为可执行的文件
    我们创建的jar自启动脚本jar_auto.sh,在/etc/rc.d/init.d目录下,所有要在该目录下执行赋予可执行的权限指令。

    chmod +x /etc/rc.d/init.d/jar_auto.sh      #赋予执行权限1

    4.为jar脚本赋予开机自启动权限

    编辑/etc/rc.d目录下的rc.local文件

    vim /etc/rc.d/rc.local1

    添加jar自启动脚本所在的目录,添加的内容如下:

    /etc/rc.d/init.d/jar_auto.sh1

    在这里插入图片描述

    5.赋予rc.local文件执行权限

    将jar自启动目录添加到rc.local文件后,需要为文件重新赋予执行权限,执行以下命令:

    chmod +x /etc/rc.d/rc.local1

    重启测试,查看jar包是否已启动:

    reboot1

    使用ps命令查看jar启动状态:
    #查看包含.jar后缀的文件启动状态

    ps -ef | grep .jar1

    在这里插入图片描述


    可以看到jar包启动成功
    参考连接:Centos7编写脚本开机自动启动多个jar包

    参考连接:Linux命令 sleep 延迟

    原文地址:https://blog.csdn.net/August_Leaf/article/details/122343620

    [编辑:王振袢 &发表于江苏]
    [我要纠错]

    来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
    声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

    关键词: 公司 目中 centos7 服务器 每次
    有价值
    0
    无价值
    0
    猜您喜欢
    最热文章

    暂不支持手机端,请登录电脑端访问

    正在加载验证码......

    请先完成验证