centos7系統是建議我們建立自己的systemd伺服器來啟動指令碼或是程式的,不過,自己很菜,對service檔案的編輯不懂,裡面需要配置的東東還挻多。乙個service尚且如此,多了後就很可怕了,比如開機啟動nginx,tomcat,redis,zookeeper等等,太麻煩了,遠不及寫幾行命令來的得方便。所以人還是使用傳統的方式,把指令碼寫進rc.local檔案裡。
centos7預設關閉了rc.local檔案的執行許可權,所以需要手動開啟:
chmod u+x /etc/rc.d/rc.local
一般情況下,這樣做就行了,但是有可能系統啟動執行指令碼時會有錯誤,所以最好在rc.local檔案中加些日誌,以便檢視錯誤原因。如:
# 指令碼開始處日誌
exec 2> /tmp/rc.local.log # send stderr from rc.local to a log file
exec 1>&2 # send stdout to the same log file
echo "rc.local started" # show start of execution
set -x
# 這裡是真正需要執行的指令碼
touch /var/lock/subsys/local
/opt/script/startup.sh #這個指令碼檔案寫好需要執行的**
# 指令碼執行完後也給個日誌
echo "rc.local completed"
這樣就把rc.local檔案的運**況寫進/tmp/rc.local.log檔案裡了。我們最好再手動建立下這個日誌檔案:
touch /tmp/rc.local.log
最後,一切都完美了。
參考:
CentOS7開機執行指令碼
以下示例以指令碼autostart.sh為例 bin bash description 開機自啟指令碼 啟動tomcat usr local tomcat bin startup.sh1 賦予自定義指令碼可執行許可權 opt script autostart.sh是自定義指令碼 chmod x op...
centos7 開機自動執行指令碼
1 因為在centos7中 etc rc.d rc.local的許可權被降低了,所以需要賦予其可執行權 chmod x etc rc.d rc.local 2 賦予指令碼可執行許可權 假設 usr local script autostart.sh是你的指令碼路徑,給予執行許可權 chmod x u...
linux設定開機執行指令碼
由於伺服器啟動需要執行多個系統軟體 例如 nginx redis rocketmq zookeeper tomcat 伺服器每次啟動需要手動去啟動多個,比較繁瑣,所以寫個指令碼,讓開機啟動去執行即可 如果自己想再加其他的,寫成指令碼直接加入到下面的begin start.sh指令碼中即可 vim b...