開機啟動/etc/rc.local失效問題的解決方法
第一種情況:
當centOS 隨機啟動文件 /etc/rc.local 失效時請按如下修改
1、echo /etc/rc.local >>/etc/profile && source /etc/profile
注:當執行生效會看到效果(/etc/profile 文件在每個用戶登錄時會首先檢查並執行)
2、reboot
注:重新啟動檢測是否生效
第二種情況:
echo /etc/rc.local >>~/.bash_profile && source /etc/profile
第三種情況:
在 /etc/init.d 目錄下增加對應程序啟動腳本,然后重啟測試,內容如下:
chkconfig --add 腳本名(將該腳本注冊到系統服務,此時直接輸入腳本可以直接運行)。
chkconfig 腳本名 on(將該服務加入隨系統開機啟動),添加自啟動,必須在腳本里面加入chkconfig 啟動順序,才能加入進去
/etc/rc.local 中部分命令無法執行(
在linux系統中添加隨系統啟動而自動運行的服務,只需在/etc/rc.local 腳本文件中添加即可,當運行的命令或程序不帶路徑時,例如:
#!/bin/bash
distccd --user nobody --allow 10.10.98.0/24 --log-file=/var/log/distcc.log --verbose --daemon
loadavg -s 10.10.98.20 >/dev/null 2>&1
注意,distccd、loadavg命令存放在/usr/local/bin/目錄下
在系統執行這些命令時將報錯,無法正常執行!
由於在執行rc.local腳本時,PATH環境變量未全部初始化,目錄/usr/local/bin/ 需在執行/etc/profile 后才被添加到環境變量PATH中。
解決方法:
在 /etc/rc.local 執行 /usr/local/bin/ 目錄中的命令需要使用絕對路徑。