iT邦幫忙

DAY 16
4

Linux Pi的奇幻旅程系列 第 13

Linux Pi的奇幻旅程(16)-大改造(續)

物聯網(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檔案中的前部份:


圖中劃線的部份是:

The default runlevel.

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, 有幾種方式:

  1. 直接刪除, 沒了這個檔就不會進入圖形界面了:
    pi@raspberrypi ~ $ sudo rm /etc/rc2.d/S03lightdm
    rm就是remove, 這是刪除檔案的命令
  2. 用系統工具update-rc.d:
    pi@raspberrypi ~ $ sudo update-rc.d lightdm disable 2
    下圖就是執行的情況, 可以看到連結檔S03lightdm被刪除了.
  3. 用raspi-config來刪除:
    (為了解說方便, 先將S03lightdm加回:
    pi@raspberrypi ~ $ sudo update-rc.d lightdm enable 2
    update-rc.d: using dependency based boot sequencing
    )
    下面兩個圖就是用raspi-confi的步驟:



    執行完之後, 系統會要求重開機, 就先不要重開機, 先看看執行的結果:

    上面的圖和直接用系統工具update-rc.d執行的結果是一樣的.

除了移除S03lightdm, 還要移除之前安裝的xrdp:
pi@raspberrypi ~ $ sudo update-rc.d xrdp disable 2

這樣就可以開始大改造了.


上一篇
Linux Pi的奇幻旅程(15)-大改造
下一篇
Linux Pi的奇幻旅程(17)-大改造(結)
系列文
Linux Pi的奇幻旅程27

尚未有邦友留言

立即登入留言