在看過 OpenWrt: Init Scripts 這篇後,我發現 OpenWrt Init Scripts 很簡單。舉個例子,寫個 /etc/init.d/fblikes 如下:
註:fblikes 是我昨天貼的 Facebook 「讚」電子顯示器,我事先已經把 fblikes 存到 /usr/bin/fblikes
建立 /etc/init.d/fblikes 後,執行 "/etc/init.d/fblikes enable
",就會在 /etc/rc.d 裏產生一個 symbolic link。START=10 代表會建立 /etc/rc.d/S10fblikes,10 是指 S10fblikes 的執行順序,在系統開機時數字愈小的 script 會優先執行,OS 會呼叫 script 的 start()。 而 STOP=15 是 optional 的,它會建立 /etc/rc.d/K15fblikes,一樣,15 是指 K15fblikes 的執行順序,在系統關機時數字愈小的 script 會優先執行,OS 會呼叫 script 的 stop()。
OpenWrt 每支 Init Script 都有下列指令可以使用:
/etc/init.d/example
/etc/init.d/example enable
/etc/init.d/example boot
/etc/init.d/example start
/etc/init.d/example restart
/etc/init.d/example stop
/etc/init.d/example disable
簡單地說,如果你想啟動 fblikes,只管輸入以下指令:
$ /etc/init.d/fblikes start
如果你要停止 fblikes,只管輸入以下指令:
$ /etc/init.d/fblikes stop
如果要想讓 fblikes 在開機時自動執行,就輸入以下指令:
$ /etc/init.d/fblikes enable
反之,不想讓 fblikes 在開機時自動執行,那就用 disable 指令把它取消:
$ /etc/init.d/fblikes disable
disable 指令會把 /etc/rc.d/S10fblikes 和 /etc/rc.d/K15fblikes 兩個 symbolic links 移除掉。
0 意見:
張貼留言