習慣於在/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正在處於被棄用的路上。