• 服务器下配置springboot项目开机自启


    服务器下配置springboot项目开机自启

    Linux版本 Centos7详细步骤如下:

    第一种方式:

    1在/etc/init.d/目录下创建shell启动脚本autojar.sh

    1. cd /etc/init.d/

    2. touch autojar.sh

    3. vi autojar.sh

      内容如下:

      #!/bin/sh
      # chkconfig: 2345 85 15 
      # description:auto_run
       
      #程序名
      RUN_NAME="SpringBoot.jar"
       
      #jar包位置
      JAVA_OPTS=/software/SpringBoot.jar
      #后台运行日志位置
      LOG_OPTS=/software/nohup.out
      ​
      #开始方法
      start() {
              nohup java -jar $JAVA_OPTS >$LOG_OPTS 2>&1 &
              echo "$RUN_NAME started success."
      }
       
      #结束方法
      stop() {
              echo "stopping $RUN_NAME ..."
              kill -9 `ps -ef|grep $JAVA_OPTS|grep -v grep|grep -v stop|awk '{print $2}'`
      }
       
      case "$1" in
              start)
                  start
                  ;;
              stop)
                  stop
                  ;;
              restart)
                  stop
                  start
                  ;;
              *)
                      echo "Userage: $0 {start|stop|restart}"
                      exit 1
      esac
    

      

    第一行,告诉系统使用的shell,所以的shell脚本都是这样。

    第二行,2345代表在设置在那个level中是on的,如果一个都不想on,那就写一个横线"-",85和15, 后面两个数字代表S和K的默认排序号 ,告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为S80autojar的文件连接, 第一个字符是S,系统在启动的时候,运行脚本autojar

    注意上面的三行中,第二,第三行是必须的,否则在运行chkconfig –add auto_run时,会报错。

    85 数字越小 启动优先级别越高

    15数字越小 关闭优先级别越高

    2.设置执行权限

      chmod +x /etc/init.d/autojar.sh
    chmod +x /software/SpringBoot.jar

    3.添加到chkconfig作为系统服务,并设置开机启动:

    系统在启动的时候,就会运行autojar并加上start参数,等同于执行命令autojar start。

      chkconfig --add autojar.sh   (添加为系统服务)
    chkconfig autojar.sh on (开机自启动)
    service autojar.sh start(启动服务)

    4.重启

      
    reboot

    5.查看

      netstat -ntlp | grep 8082 (查看端口)
    ps aux|grep java(查看服务)

    说明:

    chkconfig提供一种简单的命令行工具来帮助管理员对/etc/rc[0-6].d目录层次下的众多的符号链接进行直接操作。 此命令使用是由chkconfig命令在IRIX操作系统提供授权。不用在/etc/rc[0-6].d目录下直接维护配置信息,而是直接在/etc/rc[0-6]下管理链接文件。在运行级别的目录下的配置信息通知在将会初始启动哪些服务。

    Chkconfig有五个很明确的功能:为管理增加一个新的功能、删除一个功能、列出当前服务的启动信息、改变一个服务的启动信息和检测特殊服务的启动状态。

    当chkconfig没有参数运行时,它将显示其使用方法。如果只给出了一个服务名,它将检测这个服务名是否已经被配置到了当前运行级别中。如果已经配置,返回真,否则返回假。--level选项可以被用做查询多个运行级别而不仅仅是一个。

    如果在服务名之后指定了on,、off或reset,chkconfig将改变指定服务的启动信息。On或off标记服务被打开或停止,尤其是在运行级别被改变时。Reset标记重置服务的启动信息。

    默认情况下,on或off选项仅对2、3、4、5有影响,而 reset影响所有的运行级。--level选项可以被用于指定哪个运行级别接收影响。

    注意:对于每个服务,每一个运行级都有一个开始角本和一个结束角本。当开或关一个运行级时,init不会重新开始一个已经运行的服务,也不会重新停止一个未运行的服务。

    选项:

    --level levels 指定一个运行级别适合的操作。范围为0-7。

    --add name 增加一个新的服务。

    --del name 删除一个服务

    --list name 显示服务的情况

    RUNLEVEL FILES

    每个通过chkconfig管理的服务在其init.d目录下的角本中都需要两行或多行的注释。

    第一行告诉chkconfig在默认情况下什么运行级别的服务可以开始,也就是所说的开始或结束的优先级别。如果服务没有默认的级别,建造将在所有运行级别中启动。a – 将用于代替运行级列表。第二个注释行包括对此服务的描述,可以通过反斜线符号扩展为多行。

    示例,

    auto_run的前三行如下:

    #!/bin/sh

    #chkconfig: 2345 80 90

    #description:auto_run

    第一行,告诉系统使用的shell,所以的shell脚本都是这样。

    第二行,chkconfig后面有三个参数2345,80和90告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为 S80auto_run的文件连接,连接到/etc/rc.d/init.d目录下的的auto_run脚本。第一个字符是S,系统在启动的时候,运行脚本auto_run,就会添加一个start参数,告诉脚本,现在是启动模式。同时在rc0.d和rc6.d目录下,创建名字为K90auto_run的文件连接,第一个字符为K,系统在关闭系统的时候,会运行auto_run,添加一个stop,告诉脚本,现在是关闭模式。 注意上面的三行中,第二,第三行是必须的,否则在运行chkconfig --add auto_run时,会报错。

    1. 常见的错误 “服务不支持 chkconfig”: 请注意检查脚本的前面,是否有完整的两行:

      #chkconfig: 2345 80 90

      #description:auto_run

      在脚本前面这两行是不能少的,否则不能chkconfig命令会报错误。 如果运行chkconfig老是报错,如果脚本没有问题,我建议,直接在rc0.d~rc6.d下面创建到脚本的文件连接来解决,原理都是一样的。

    第二种方式:

    1、在项目目录创建shell脚本

    1. cd /software/

    2. touch runJar.sh

    3. vi /software/runJar.sh

        

      #!/bin/bash
      nohup java -jar /software/SpringBoot.jar >/software/nohup.out 2>&1 &
      sleep 5
      nohup java -jar /software/SpringBootB.jar >/software/nohupb.out 2>&1 &

        

    2、修改开机启动文件 /etc/rc.local

      #!/bin/bash
      # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
      #
      # It is highly advisable to create own systemd services or udev rules
      # to run scripts during boot instead of using this file.
      #
      # In contrast to previous versions due to parallel execution during boot
      # this script will NOT be run after all other services.
      #
      # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
      # that this script will be executed during boot.
      ​
      touch /var/lock/subsys/local
      /software/runJar.sh
      exit 0
    

      

    3、执行文件授权命令

      chmod +x /software/runJar.sh
    chmod +x /etc/rc.local

    4、检查脚本是否配置正常

      
    bash /etc/rc.local

    5.重启

      reboot

    6.查看

      
    netstat -ntlp | grep 8082 (查看端口)
    ps aux|grep java(查看服务)
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    jdbc连接数据库(mysql,sqlserver,oracle)
    简单粗暴将sqlserver表以及数据迁移到oracle
    LXD 2.0 系列(五):镜像管理
    LXD 2.0 系列(十二):调试,及给 LXD 做贡献
    LXD 2.0 系列(七):LXD 中的 Docker
    LXD 2.0 系列(四):资源控制
    LXD 2.0 系列(三):你的第一个 LXD 容器
    LXD 2.0 系列(二):安装与配置
    LXD 2.0 系列(一):LXD 入门
    Debian-linux 网卡配置
  • 原文地址:https://www.cnblogs.com/KdeS/p/13595315.html
Copyright © 2020-2023  润新知