為什麼CentOS8開機不執行rc.local

獵手家園發表於2021-06-10

一、有兩臺伺服器,一臺centos6,一臺centos8。centos6中配置了開機啟動指令碼rc.local,理所當然的在centos8中也照樣配置了,結果.....Centos8中的rc.local並未啟動。

二、首先執行一條檢查命令:

systemctl status rc-local

發現它的狀態是:Active: inactive (dead) 未啟用

 

這是什麼原因?

在Centos系統中,我們運維一般在/etc/rc.d/rc.local寫入開機需要執行的命令,就可以實現系統開機啟動過程,啟動所需的命令,這是Centos5-6的常規做法,但是在Centos7-8採用了systemd技術,開機不會執行init程式,但是為了相容Centos5-6版本,新版本中提供了一個rc-local的systemc服務,可以透過啟動此服務,實現rc.local檔案中設定的啟動程式開機啟動。

 

所以設定一下:

1、將 rc.local 檔案設定為可執行檔案:

chmod +x /etc/rc.d/rc.local

 

2、在 /usr/lib/systemd/system/rc-local.service 結尾加上:

[Install]
WantedBy=multi-user.target

 

3、設定為開機啟動

systemctl enable rc-local

完成。

 

三、來看一下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.

意思是:

新增此檔案是出於相容性目的
最好建立自己的systemd服務或udev規則來在引導期間執行指令碼,而不是使用這個檔案。
與以前的版本不同,由於在引導期間並行執行,此指令碼將不會在所有其他服務之後執行。
請注意,您必須執行CHMOD+X/ETC/RC D/rc.本地'以確保在引導期間執行此指令碼。

 

建立啟動服務傳送門:https://www.cnblogs.com/hunttown/p/14872071.html

 

相關文章