物聯網(the Internet of Things)就是個人雲(Personal clouds), 一切的發生都會在Linux. 您準備好了嗎?
上一篇: Linux Pi的奇幻旅程(15)-大改造http://ithelp.ithome.com.tw/question/10134875
下一篇: Linux Pi的奇幻旅程(17)-大改造(結)http://ithelp.ithome.com.tw/question/10135713
全部: http://ithelp.ithome.com.tw/ironman6/player/bizpro/alll/1
個人雲是在小小的物件上起一個雲(主機), Raspberry Pi是一個很好的開始, 但是龐大的圖形界面是難以在小小的個人雲上起什麼作用的, 因此要把圖形界面移除, 前文提到準備要被移除的套件, 這只是一個開始. 雲起Linux.
大改造之前, 要介紹Linux上的一個重要的觀念: 啟動級別(run level), 一般上分為七加一個級別(levels), 也就是在目錄/etc之下的八個以rc開頭的子目錄:
rc0.d/ rc1.d/ rc2.d/ rc3.d/ rc4.d/ rc5.d/ rc6.d/ rcS.d/
rc0.d負責關機的運作
rc1.d是維修模式
rc2.d是多人文字模式, 沒有圖形界面
rc3.d也是多人文字模式, 沒有圖形界面, 具有網路
rc4.d是保留未使用的.
rc5.d是圖形界面
rc6.d負責重開機的運作
rcS.d是單人模式
每個目錄下都放著許多可被執行的腳本. 以/etc/rc2.d為例:
可以看到有許多連結(如圖中的->)的腳本連到目錄/etc/init.d/中的可執行檔.
連結的開頭可以有S和K:
(1) S代表Start, 也就是要在執行該腳本時會啟用參數start.
(2) K代表Stop, 也就是要在執行該腳本時會啟用參數stop.
這是甚麼意思?
以/etc/init.d/reboot為例:
其中在case和esac中有start, stop, restart, reload, 及force-reload等參數. start和stop就是S和K分別所對應到的參數, 然後去執行其中的命令.
基本上了解了run level的基礎, 我們可以知道, rc0.d和rc6.d是分別負責關機與重開機的重責大任, 但是開機之後要跑那一個run level呢? 答案就在檔案/etc/inittab中, 下圖是擷取該inittab檔案中的前部份:
圖中劃線的部份是:
id:2:initdefault:
在id:2後面的數字2就代表開機後會進入目錄/etc/rc2.d/中, 然後依S和K執行目錄內的所有腳本. 順序是當是S時由小數字和小字母的開始執行, 例如S01bootlogs會先執行, 執行到S04rmnologin, 當開頭是K的則以相反順序執行.
重點是, 在目錄/etc/rc2.d/中的連結檔S03lightdm是負責啟動圖形界面及視窗管理系統LXDE的, 這表示原本約定成俗的runlevel, 其實只是參考, 重要的是, 在要執行的runlevel中放了什麼就是什麼, 也就是說, 原本rc2.d是多人文字模式, 沒有圖形界面的, 由於連結檔S03lightdm啟動了圖形界面, 系統就當然進入了圖形界面.
也因此, 在大改造之前, 必需先移除連結檔S03lightdm, 有幾種方式:
除了移除S03lightdm, 還要移除之前安裝的xrdp:
pi@raspberrypi ~ $ sudo update-rc.d xrdp disable 2
這樣就可以開始大改造了.