習慣於在/etc/rc.local檔案裡配置我們需要開機啟動的服務,這個在centos6系統下是正常生效的。但是到了centos7系統下,發現/etc/rc.local檔案裡的開機啟動項不執行了!仔細研究/etc/rc.local檔案內容,發現問題如下:
[root@openstack ~]# cat /etc/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.local”來確保確保這個指令碼在引導時執行。
然後接著檢視/etc/rc.local的許可權
[root@openstack ~]# ll /etc/rc.local lrwxrwxrwx. 1 root root 13 1月 29 10:45 /etc/rc.local -> rc.d/rc.local [root@openstack ~]# ll /etc/rc.d/rc.local -rw-r--r--. 1 root root 473 1月 25 23:52 /etc/rc.d/rc.local
/etc/rc.d/rc.local沒有執行許可權,於是按說明的內容執行:
[root@openstack ~]# chmod +x /etc/rc.d/rc.local [root@openstack ~]# ll /etc/rc.d/rc.local -rwxr-xr-x. 1 root root 473 1月 25 23:52 /etc/rc.d/rc.local
重啟伺服器後發現/etc/rc.local檔案裡設定的開啟啟動項能夠正常執行了。由此可見,雖然centos版本的變遷,/etc/rc.local、/etc/rc.d/rc.local正在處於被棄用的路上。