centos7 自啟動指令碼
阿新 • • 發佈:2021-06-23
環境
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
註釋:
#!/bin/sh是指此指令碼使用/bin/sh來解釋執行,#!是特殊的表示符,其後面根的是此解釋此指令碼的shell的路徑。其實第一句的#!是對指令碼的直譯器程式路徑,指令碼的內容是由直譯器解釋的,我們可以用各種各樣的直譯器來寫對應的指令碼。 chkconfig 命令主要用來更新(啟動或停止)和查詢系統服務的執行級資訊。
-
測試方式
在於sh同級目錄上輸入
./tttt.sh tttt指指令碼名稱
出現sh中的echo內容就表示sh指令碼內容通過了
方法
-
1、 修改rc.local
- 賦予rc.local可執行許可權
chmod +x /etc/rc.d/rc.local
- 賦予指令碼可執行許可權(/usr/local/script/autostart.sh是你的指令碼路徑)
chmod +x /home/tttt.sh
-
開啟/etc/rc.d/rc.local檔案,在末尾增加如下內容
/home/tttt.sh
- 賦予rc.local可執行許可權
-
2、chkconfig管理
- 在/etc/init.d 目錄中新增test檔案,並想test檔案中寫入
#!/bin/bash # chkconfig:
- 賦予可執行許可權
chmod +x /etc/init.d/test
- 新增到chkconfig,開機自啟動
chkconfig --add test
- 檢視是否新增成功
chkconfig --list test
如:
(已成功)
- 在/etc/init.d 目錄中新增test檔案,並想test檔案中寫入
驗證
重啟伺服器
reboot
然後檢視是否啟動docker,以及對應的映象(有映象表示成功)
docker ps
或者檢視防火牆是否關閉(not running 表示指令碼成功)
firewall-cmd --state