1. 程式人生 > 其它 >centos7 自啟動指令碼

centos7 自啟動指令碼

環境

 centos7, docker,docker postgresql, python3+, project

原因

每次虛擬機器重啟之後資料庫就會宕掉,每次重啟之後,還容易忘記關閉防牆

步驟

  • 編寫sh指令碼

    #! /bin/sh
    # chkconfig:2345 80 90
    # description:tttt.sh
    echo "colse firewall"
    systemctl stop firewalld.service
    echo "shart docker"
    systemctl start docker
    echo "start postgres"
    docker start postgres1
    echo 
    "start project" nohup /home/python3/bin/python3 /home/backend/main.py start > /home/backend/test.log 2>&1 &

    註釋:

    #!/bin/sh是指此指令碼使用/bin/sh來解釋執行,#!是特殊的表示符,其後面根的是此解釋此指令碼的shell的路徑。其實第一句的#!是對指令碼的直譯器程式路徑,指令碼的內容是由直譯器解釋的,我們可以用各種各樣的直譯器來寫對應的指令碼。
    chkconfig 命令主要用來更新(啟動或停止)和查詢系統服務的執行級資訊。
  • 測試方式

   在於sh同級目錄上輸入

./tttt.sh     tttt指指令碼名稱

   出現sh中的echo內容就表示sh指令碼內容通過了

  

方法

  • 1、 修改rc.local        

    1. 賦予rc.local可執行許可權
      chmod +x /etc/rc.d/rc.local
    2. 賦予指令碼可執行許可權(/usr/local/script/autostart.sh是你的指令碼路徑)
      chmod +x /home/tttt.sh
    3. 開啟/etc/rc.d/rc.local檔案,在末尾增加如下內容

      /home/tttt.sh
  • 2、chkconfig管理

    1. 在/etc/init.d 目錄中新增test檔案,並想test檔案中寫入
      #!/bin/bash
      # chkconfig: 
      3 88 88 /home/tttt.sh
    2. 賦予可執行許可權
      chmod +x /etc/init.d/test
    3. 新增到chkconfig,開機自啟動
      chkconfig --add test
    4. 檢視是否新增成功
      chkconfig --list test

      如:

      (已成功)

驗證

重啟伺服器

reboot

然後檢視是否啟動docker,以及對應的映象(有映象表示成功)

docker ps

或者檢視防火牆是否關閉(not running 表示指令碼成功)

firewall-cmd --state