在Linux系統(CentOS7版本)下,如何實現某個服務的開機自啟動?


【問題描述】

  在CentOS6及其之前的版本,可以使用service + chkconfig 命令,來實現服務的開機自啟動;

  但在CentOS7版本系統上,之前的命令和配置都無效了。

 

【思路分析】

  在CentOS7版本系統上,配置文件的路徑和命令都已經發生改變,需要重新進行配置。

 

【解決方案】

  本文還是以Eureka服務為例,來說明在CentOS7系統中如何設置該服務的開機自啟動。

  1.在任意目錄下,創建一個啟動服務的shell腳本文件( 名字可以隨意取,這里就以eurek.sh為例說明 );

  注意:腳本文件不要在 /etc/init.d 目錄下,如果該目錄下面有就刪除掉,否則可能會產生沖突導致自啟動無效。

  文件的內容如下: 僅供大家參考(你們寫的啟動服務的腳本要根據你們服務的實際命令和路徑來寫)

        #!/bin/bash

        # chkconfig:2345 10 90
        # description: eureka service ...
           start(){
             echo "-----------准備啟動Eureka服務----------"

      # 進入到eureka的安裝目錄:
                 cd /opt/eureka/

        # 設置一下 linux系統的JAVA環境變量和Path路徑:
                     export JAVA_HOME=/usr/lib/jvm/jdk1.8
                  export PATH=$JAVA_HOME/bin:$PATH
                  export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

     # 在后台啟動 eureka服務:
             nohup java -jar com.xxxx-xxx-xxxxxx-0.0.1-SNAPSHOT.jar > nohup.out &
          echo "-----------完成啟動Eureka服務------------"
        }
        case $1 in
        start):
        start
        ;;

       stop):
       echo "--------------------stop...-------------------"
        ;;
       esac

       exit 0

  說明:1) shell腳本編寫完成后,請在機器上執行一下,確認該腳本是可以正常啟動eureka的jar包服務的.

     2) 啟動后, 可以通過 ps -ef|grep java(或服務) 命令來查看需要啟動的java進程(或服務)是否已經正常啟動.

  

  2. 在 /usr/lib/systemd/system 目錄下面創建一個xxx.service的文件;

  注意:xxx.service文件不要放在 /etc/systemd/system 目錄下,如果該目錄下面有就刪除,否則可能會產生沖突。

  文件的內容如下: 僅供參考

  [Unit]

    Description=The eureka.jar service
    After=network.target remote-fs.target nss-lookup.target

   [Service]

    Type=forking
    ExecStart=/opt/eureka/eureka.sh start
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/opt/eureka/eureka.sh stop
    PrivateTmp=True

   [Install]

    WantedBy=multi-user.target

 3.  使用systemctl  enable  xxx.service 命令,把服務添加到linux系統的自啟動服務列表中去;

 4.  使用systemctl  status  xxx.service 命令,查看是否添加成功。


免責聲明!

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



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