2013年9月3日 星期二

寫個 OpenWrt Init Scripts

在看過 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 意見: