小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

關(guān)于Ubuntu 12.04修改默認(rèn)運行級別,啟動字符界面的個人理解

 quasiceo 2013-09-10
Ubuntu 12.04修改默認(rèn)運行級別,啟動字符界面的個人理解
2013-08-20 11:48:25     我來說兩句       作者:嘿我夢見了
收藏    我要投稿
關(guān)于Ubuntu 12.04修改默認(rèn)運行級別,啟動字符界面的個人理解
網(wǎng)上通常的做法是:(親自試驗,不管用),如果想直接操作請看綠色字體部分
(1)第一種方法:
由于RedHat中是通過一個叫inittab的文件來管理運行級別的,而ubuntu中沒有,所以建議在/etc/目錄下創(chuàng)建該文件   $sudo vi /etc/initab
然后編輯該文件,運行級別設(shè)為3,內(nèi)容如下id:3:initdefault:
然后重啟。
親自試驗,不管用,Ubuntu還是進(jìn)入圖形界面。
(2)第二種方法:
利用sysv-rc-cong軟件
sudo install sysv-rc-conf
再用root來執(zhí)行
sudo sysv-rc-conf
關(guān)掉你需要的運行級別里的gdm, 或者全部都關(guān)掉
然后按q退出即可
沒有試驗
(3)第三種方法:
默認(rèn)情況下,要想修改默認(rèn)運行等級,要修改/etc/inittab文件。但是ubuntu系統(tǒng)并沒有這個文件,而是需改/etc/init/rc-sysinit.conf這個文件。由于ubuntu默認(rèn)級別為2,所以你會看到env DEFAULT_RUNLEVEL=2,將2改為3便可。重啟。
親自試驗,不管用,Ubuntu還是進(jìn)入圖形界面。
(4)第四種方法:
Ubuntu安裝后默認(rèn)的run level為2,這個可以用runlevel命令查看。因為runlevel=2,所以在啟動過程中自動執(zhí)行/etc/rc2.d/目錄下的以S開頭的腳本。Ubuntu之所以能直接啟動到圖形界面,是由于運行g(shù)dm所致。所以,只要把gdm的啟動腳本禁用就可以了,方法就是把文件名的第一個字母S改成 K:
cd /etc/rc2.d
sudo mv S30gdm K30gdm
親自試驗,相應(yīng)目錄下根本就沒有g(shù)dm這個文件。
在介紹方法之前希望大家明確一個概念:
Ubuntu的默認(rèn)開機的runlevel是2,可以用runlevel來查看當(dāng)前的默認(rèn)運行級別。
debian系(ubuntu是基于debian)的Linux一直是用runlevel 2來默認(rèn)啟動,并且runlevel定義也與redhat有區(qū)別。debian的runlevel級別定義如下:
0 – Halt,關(guān)機模式
1 – Single,單用戶模式
2 - Full multi-user with display manager (GUI)
3 - Full multi-user with display manager (GUI)
4 - Full multi-user with display manager (GUI)
5 - Full multi-user with display manager (GUI)
6 – Reboot,重啟
可以發(fā)現(xiàn)2~5級是沒有任何區(qū)別的。他們?yōu)槎嘤脩裟J?,這和一般的linux不一樣。而redhat的runlevel級別定義如下:
0:關(guān)機。不能將系統(tǒng)缺省運行級別設(shè)置為0,否則無法啟動。
1:單用戶模式,只允許root用戶對系統(tǒng)進(jìn)行維護(hù)。
2:多用戶模式,但不能使用NFS(相當(dāng)于Windows下的網(wǎng)上鄰居)
3:字符界面的多用戶模式。
4:未定義。
5:圖形界面的多用戶模式。
6:重啟。不能將系統(tǒng)缺省運行級別設(shè)置為0,否則會一直重啟。
這里補充一下,多數(shù)的linux都是用一種叫System V的機制來啟動運行級別,而ubuntu使用upstart代替init啟動系統(tǒng)進(jìn)程。所以沒有那個inittab文件來改默認(rèn)運行級別。ubuntu 的默認(rèn)運行級別文件是/etc/init/rc-sysinit.conf。
成功的方法:
第一種方法:(內(nèi)核級別的)
Sudo vi /etc/default/grub
修改GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
為:GRUB_CMDLINE_LINUX_DEFAULT=” text”
然后運行下sudo update-grub2就可了
第二種方法:(基于upstart的”正統(tǒng)”方法)
ubuntu的upstart的體系下,/etc/init.d里面基本上都是連接到/lib/init/upstart-job的軟連接,所以,對 initscripts的請求全部轉(zhuǎn)化為upstart事件,upstart系統(tǒng)對啟動項目的管理全部根據(jù)/etc/init里面的配置文件來啟動,可以啟動lightdm的事件就讓人咂舌
編輯文件 /etc/init/lightdm.conf
start on ((filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger))
or runlevel PREVLEVEL=s)
stop on runlevel [016]
可見,一旦發(fā)生文件系統(tǒng)初始化,DBUS總線啟動和發(fā)生graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1 or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 or stopped udevtrigger or runlevel PREVLEVEL=s這里面的任何一個事件,GDM就會被啟動,只在運行級別在016的時候,GDM不啟動。
所以,事件也就明了了、要在upstart層面干掉gdm,把上面的啟動相關(guān)事件注釋掉,改寫下就行了
由于ubuntu 默認(rèn)模式為2,所以:
start on (filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger)
and runlevel [345])
stop on runlevel [0126]
重啟。
第三種方法:
1、阻止默認(rèn)圖形桌面啟動
ubuntu 12.04默認(rèn)的開機會進(jìn)入一個圖形界面,他是由lightdm進(jìn)程來實現(xiàn)的。
首先要做的,就是阻止這個lightdm的進(jìn)程開機啟動。 做法:
(1)、查看文件/etc/init/rc-sysinit.conf,在第14行附近:確認(rèn)“env DEFAULT_RUNLEVEL=2”。2是新裝系統(tǒng)默認(rèn)的,確保不被修改。
(2)、編輯文件 /etc/init/lightdm.conf,在第12行附近,原句“ and runlevel [!06]” 改為“ and runlevel [!026]”。
解釋:linux系統(tǒng)都有一個運行級別(runlevel)的概念,不同的運行級別配置將導(dǎo)致系統(tǒng)的啟動過程有很大差異,比如當(dāng)配置 runlevel為 1是,是不進(jìn)入圖形界面的。系統(tǒng)啟動過程中會有一個init進(jìn)程來拉起許多其他進(jìn)程(各種系統(tǒng)服務(wù),窗口界面)。在ubuntu上(11.10,12.04是這樣,其他版本或其他linux發(fā)行版不確定)init會執(zhí)行兩個目錄下的腳本,一個是/etc/init/下的,另一個是/etc/rc?.d/下的,問號可能是0~6的其中一個數(shù)字,代表運行級別。接下來,講解一下流程以加深理解。
在ubuntu上,init進(jìn)程首先執(zhí)行/etc/init/目錄下的rc-sysinit.conf,這個文件指明了本次啟動的默認(rèn)運行級別。這是上面第一步的意義:確保默認(rèn)運行級別是2。接下來目錄/etc/init下的其他腳本的執(zhí)行都會根據(jù)不同的運行級別做出不同的動作,比如lightdm會判斷運行級別是否處于1,2,3,4,5中的一個,是則啟動lightdm,不是則不啟動lightdm。這便是上面第二步的意義,修改 lightdm.conf ,把“2”加入到判斷語句,使得lightdm在運行級別2的時候不要啟動。明白了這些,你就可以靈活一點,例如把默認(rèn)級別設(shè)置為3,而把3加入那個判斷語句,也可以達(dá)到阻止lightdm啟動的效果。完成了/etc/init/目錄下的啟動動作,init進(jìn)程會繼續(xù)執(zhí)行/etc/rc2.d目錄下的腳本。
2、關(guān)閉Ubuntu的載入畫面
ubuntu啟動時,會有一個ubuntu字樣出現(xiàn)在屏幕,文字下方有閃爍的點,這時按ESC可以在動畫和文字界面之間切換。這一步驟不屬于lightdm,而是一個叫 plymouth 的進(jìn)程在起作用。實際上,plymouth的意義就在于,在開機到圖形桌面 (lightdm)起來這段時間里展示出一個動畫,從而提高用戶體驗。
屏蔽的方法:
(1)、編輯 /etc/default/grub文件,原文11行附近:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 
去掉”splash“,改后:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
(2)、執(zhí)行命令:
sudu updat-grub
重啟,即可看到,不再有載入畫面出現(xiàn)
閱讀下文能夠更好的理解(擴展閱讀):
Linux 系統(tǒng)主要啟動步驟:
1. 讀取 MBR的信息,啟動 Boot Manager
 Windows 使用 NTLDR作為 Boot Manager,如果您的系統(tǒng)中安裝多個版本的 Windows,您就需要在 NTLDR中選擇您要進(jìn)入的系統(tǒng)。Linux 通常使用功能強大,配置靈活的 GRUB作為 Boot Manager。
 2. 加載系統(tǒng)內(nèi)核,啟動 init進(jìn)程
   init 進(jìn)程是 Linux的根進(jìn)程,所有的系統(tǒng)進(jìn)程都是它的子進(jìn)程。
 3. init 進(jìn)程讀取 /etc/inittab文件中的信息,并進(jìn)入預(yù)設(shè)的運行級別,
   按順序運行該運行級別對應(yīng)文件夾下的腳本。腳本通常以 start參數(shù)啟動,并指向一個系統(tǒng)中的程序。通常情況下, /etc/rcS.d/目錄下的啟動腳本首先被執(zhí)行,然后是/etc/rcN.d/目錄。例如您設(shè)定的運行級別為 3,那么它對應(yīng)的啟動目錄為 /etc/rc3.d/。
4. 根據(jù) /etc/rcS.d/文件夾中對應(yīng)的腳本啟動 Xwindow服務(wù)器 xorg Xwindow為 Linux下的圖形用戶界面系統(tǒng)。
5. 啟動登錄管理器,等待用戶登錄
  Ubuntu 系統(tǒng)默認(rèn)使用 GDM作為登錄管理器,您在登錄管理器界面中輸入用戶名和密碼后,便可以登錄系統(tǒng)。(您可以在 /etc/rc3.d/文件夾中找到一個名為 S13gdm 的鏈接)
ubuntu的init與系統(tǒng)服務(wù)設(shè)置
init
Init是位于/sbin/init的一個程序,它是在linux下,在系統(tǒng)啟動過程中,初始化所有的設(shè)備驅(qū)動程序和數(shù)據(jù)結(jié)構(gòu)等之后,由內(nèi)核啟動的一個用戶級程序,并由此init程序進(jìn)而完成系統(tǒng)的啟動過程。
ubuntu與傳統(tǒng)的linux略有不同,使用upstart完成系統(tǒng)的啟動,但表面上仍維持init程序的形式。
運行級別
傳統(tǒng)上,linux有幾種不同的運行級別,包括如下幾種:
# 0 - 停機
# 1 - 單用戶模式
# 2 - 多用戶,沒有 NFS
# 3 - 完全多用戶模式(標(biāo)準(zhǔn)的運行級)
# 4 –系統(tǒng)保留的
# 5 – X11(x window)
# 6 - 重新啟動
系統(tǒng)啟動后處于哪一種級別由init讀取/etc/inittab文件中的缺省級別設(shè)置來確定,一半圖形界面的系統(tǒng)是進(jìn)入級別3。
但是ubuntu與傳統(tǒng)的不太一樣,默認(rèn)情況下是找不到/etc/inittab文件的,而且運行級別也有差別,具體分這樣幾個級別:
# 0 –關(guān)閉系統(tǒng)
# 1 –單用戶模式
# 2~5 –完整的多用戶模式
# 6 –重新啟動
也就是說,默認(rèn)情況下級別2、3、4、5都是一樣的,同時系統(tǒng)的默認(rèn)級別設(shè)定也不是在inittab文件中,而是寫在/etc/init/rc- sysinit.conf文件中。打開此文件,可以找到下面一句:
env DEFAULT_RUNLEVEL=2
這表明系統(tǒng)當(dāng)前默認(rèn)是進(jìn)入級別2。
另外,在此文見中還有一段以if [ -r /etc/inittab ] 開始的代碼,這里保留了使用inittab指定系統(tǒng)默認(rèn)運行級別的功能,也就是說,如果用戶手動創(chuàng)建了/etc/inittab,那么init將以 /etc/inittab中指定的默認(rèn)運行級別進(jìn)行系統(tǒng)的啟動。比如說用戶希望系統(tǒng)以級別3為默認(rèn)運行級別,則只需在inittab文件中加入如下一行:
id:3:initdefault:
在經(jīng)過/etc/init/rc-sysinit.conf確定運行級別后,init將進(jìn)一步運行/etc/init.d/rc,然后根據(jù)級別進(jìn)入 /etc/rc[?].d啟動或關(guān)閉相應(yīng)的服務(wù)。
服務(wù)的啟動與關(guān)閉腳本
ubuntu下啟動與關(guān)閉服務(wù)的腳本存放與/etc/rc[?].d目錄下。其中[x]表示0~6,分別對應(yīng)級別0~6,如/etc目錄下的 rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d。假設(shè)rc-sysinit.conf或inittab中指定的默認(rèn)級別是2,那么init將執(zhí)行/etc/rc2.d目錄下的腳本啟動或關(guān)閉相應(yīng)服務(wù)。
如果打開/etc/rc[?].d目錄,會發(fā)現(xiàn)這些目錄下的文件都是形如Snnxxxx或Knnxxxx的符號鏈接,而且都是指向/etc /init.d。也就是說不同運行級別下服務(wù)的啟動或關(guān)閉腳本均是放在/etc/init.d下,只不過根據(jù)不同級別的需要,在對應(yīng)/etc /rc[?].d目錄下放一個鏈接,不同的級別會需要不同的服務(wù),因此不同/etc/rc[?].d目錄下的鏈接文件也不盡相同以此區(qū)分。
其中鏈接文件中以S開頭的表示在調(diào)用/etc/init.d目錄中對應(yīng)腳本的時候會傳遞一個start參數(shù),也就是啟動對應(yīng)服務(wù),而以K開頭的則是傳遞一個stop參數(shù),由此關(guān)閉此服務(wù),此處的K表示kill。
S和K后面的nn是一個數(shù)字,表示本腳本被執(zhí)行的先后順序,小號在前大號在后,這樣以解決不同服務(wù)之間可能存在的先后依賴關(guān)系。比如說ftp服務(wù)依賴于網(wǎng)絡(luò)服務(wù)的啟動,所以ftp服務(wù)的編號就要大于網(wǎng)絡(luò)服務(wù)的編號,在網(wǎng)絡(luò)服務(wù)啟動后再行啟動。
最后的xxxx則是服務(wù)的名字。
另外,除了/etc/rc[0~6].d文件外,還有一個/etc/rcS.d目錄,這個目錄下的服務(wù)腳本與/etc/rc[0~6].d格式類似,也為指向/etc/init.d中的腳本的鏈接,但是會在/etc/rc[0~6].d中的腳本執(zhí)行前首先被執(zhí)行。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多