服務器下配置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(查看服務)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM