SUSE10中沒有rc.local, 感覺用起來不是很方便
suse linux 沒有這個檔案,另外策略就是也不喜歡使用者這樣管理啟動服務。
若你有某各服務服務需要是在進入 runlevel 後才執行的話,於 suse 下正規做法應該是自己寫一個 rc script 檔案放置於 /etc/init.d/ 目錄內,然後使用 chkconfig or inssev 程式來管理配置能夠於某個 runlevel 環境開機時是否要啟用關閉該服務項目。
該 rc script 檔案寫法可以自己參考一下 /etc/init.d/ 裡面現成的 script 檔案,應該很容易就寫一個自己的版本。
另外 suse 有個 /etc/init.d/boot.local 檔案是由 /etc/init.d/boot 這個 script 所啟動的,而且是最後 boot script 工作完成要准備進入 runlevel 環境執行各項 rc script 前所執行。而 rh 的 /etc/rc.d/rc.local 檔案是 runlevel 環境執行各項 rc script 時最後一個階段執行的。
所以若你要跑的程式適合於 runlevel 這項服務之前就執行的話,suse linux 可以放於 boot.local 檔案。
1 方法一
1.1 步驟一
編輯/etc/init.d/rc腳本,在最後一個exit 0之前,加入以下內容:
rc_local=/etc/rc.d/rc.local
current_runlevel=$(runlevel | awk '{ print $NF }')
if [ -x $rc_local ];then
((current_runlevel>1)) && ((current_runlevel<6)) && {
echo -e "\n\n\n"
echo "-----------------------Startup $rc_local---------------------------"
$rc_local
}
fi
以上為腳本內容
1.2 步驟二
然後創建/etc/rc.local文件,並賦予755權限:
chmod 0755 /etc/rc.d/rc.local
2 方法二
2.1 步驟一
創建/etc/rc.d/rclocal文件,加入以下內容:
case "$1" in
start)
if ! test -x /etc/init.d/rc.local ; then
echo '/etc/rc.local is not exsit!'
exit 1
fi
/etc/init.d/rc.local &
;;
stop)
;;
esac
以上為腳本內容
2.2 步驟二
創建/etc/rc.d/rc.local,把你要開機執行的腳本都加到裡面
2.3 步驟三
chmod 0755 /etc/rc.d/rc.local /etc/rc.d/rclocal
2.4 步驟四
chkconfig --add rclocal