亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux啟動全線提速法

添加時間:2011-5-17  添加: admin 

如果想采用本文介紹的方法對Linux系統進行設置,首先要熟悉Linux系統的設置語言。對系統的啟動過程進行設置是一項比較危險的行為,容易造成系統無法啟動。一旦發生這種情況,最好重新啟動系統后選擇單一用戶模式,將系統還原并重啟。當然,最重要的是在設置前備份重要數據。

其次,建議用戶最好在對本機系統進行修改前,先進行修改測試。如果用戶只有一臺計算機,那么這里建議使用用戶模式Linux系統(UML)進行測試。UML是一個內核補丁,它可以將Linux系統的內核轉譯成為二進制,以便用戶可以像使用普通軟件那樣運行Linux系統。一旦出現意外情況,損失的只是UML,而原系統卻可安然無恙。

Linux系統的啟動順序和runlevel

Linux系統的啟動包括多個步驟,這里主要介紹一下內核加載后的系統啟動步驟。用戶可以通過運行/sbin/runlevel命令來查看系統目前的runlevel。runlevel是Linux系統用來區別系統高級啟動設置類型的數字。這些數字十分常見,它們中的絕大多數都有著明確的含義。以Red Hat Linux系統為例,它的runlevel主要有以下幾種(見表1):

init如何初始化系統

init可以通過一個ASCⅡ設置文件得知如何改變系統的runlevel。通常情況下該設置文件可以指引init來執行/etc/rc.d/rc命令,從而獲得runlevel的相關信息。

系統服務

用戶所需要的各種系統服務都是由rc指令程序來啟動的。系統潛在的服務紛繁復雜。大多數Linux系統通常只提供sshd(SecureShell服務)、syslog(系統日志工具)和lpd(打印服務)等功能。

用戶可以從/etc/rc.d/目錄中找到所有的服務。如果打開這個目錄,會發現許多服務只是一種外殼程序,它只是引導其它程序來完成工作。也許有人會問,rc程序是如何知道每個runlevel要運行哪些程序呢?答案是在/etc/rc.d/目錄下面與init.d/目錄并列的還有一些目錄,它們各自對應著自己的runlevel。它們的名稱為rc*.d/,例如runlevel 5就是/etc/rc.d/rc5.d/。每個rc*.d/目錄中包含著兩個符號鏈接,這些鏈接可以連接到/etc/init.d/目錄中的指定服務程序。

動手改造

如果用戶決定要啟動Linux系統并進入圖形模式(runlevel 5),那么當init引導rc指令程序運行并將runlevel的級數告知它時,rc指令程序將對/etc/rc.d/rc5.d/進行查看,接著它將執行從該目錄中找到所有鏈接。rc指令程序執行鏈接的過程可分為兩部分,首先它將執行所有名稱以“K”打頭的鏈接,將“stop”參數傳遞給它們,并停止這些鏈接指向的所有服務。這些服務停止后,rc指令程序將執行所有名稱以“S”打頭的鏈接,并將“start”參數傳遞給它們,啟動這些鏈接所指向的服務。

另外,rc指令程序可以根據鏈接名稱的兩個十進制數,確定鏈接的執行順序,數字小的先執行。

下面將舉一個例子,幫助用戶加深理解。當用戶啟動系統進入runlevel 5時,首先要執行的鏈接是K05saslauthd,由于它是以“K”打頭的,而且后兩位十進制數要小于其它以“K”打頭的鏈接。第一個要執行的啟動鏈接是S05kudzu。最后執行的將是S99local。下面是runlevel 5狀態下指向程序的鏈接。

# cd /etc/rc.d/rc5.d

# ls -al

total 8

drwxr-xr-x 2 root root 4096 Jul 15 09:29 .

drwxr-xr-x 10 root root 4096 Jun 21 08:52 ..

lrwxrwxrwx 1 root root 19 Jan 1 2000 K05saslauthd -> ../init.d/saslauthd

lrwxrwxrwx 1 root root 20 Feb 1 2003 K15postgresql -> ../init.d/postgresql

lrwxrwxrwx 1 root root 13 Jan 1 2000 K20nfs -> ../init.d/nfs

lrwxrwxrwx 1 root root 14 Jan 1 2000 K24irda -> ../init.d/irda

lrwxrwxrwx 1 root root 17 Jan 1 2000 K35winbind -> ../init.d/winbind

lrwxrwxrwx 1 root root 15 Jan 1 2000 K50snmpd -> ../init.d/snmpd

……

lrwxrwxrwx 1 root root 18 Feb 8 11:15 K92iptables -> ../init.d/iptables

lrwxrwxrwx 1 root root 19 Feb 1 2003 K95firstboot -> ../init.d/firstboot

lrwxrwxrwx 1 root root 15 Jan 1 2000 S05kudzu -> ../init.d/kudzu

lrwxrwxrwx 1 root root 14 Jun 21 08:55 S09isdn -> ../init.d/isdn

lrwxrwxrwx 1 root root 17 Jan 1 2000 S10network -> ../init.d/network

lrwxrwxrwx 1 root root 16 Jan 1 2000 S12syslog -> ../init.d/syslog

lrwxrwxrwx 1 root root 17 Jan 1 2000 S13portmap -> ../init.d/portmap

lrwxrwxrwx 1 root root 17 Jan 1 2000 S14nfslock -> ../init.d/nfslock

lrwxrwxrwx 1 root root 18 Jan 1 2000 S17keytable -> ../init.d/keytable

lrwxrwxrwx 1 root root 16 Jan 1 2000 S20random -> ../init.d/random

lrwxrwxrwx 1 root root 16 Jun 21 08:52 S24pcmcia -> ../init.d/pcmcia

lrwxrwxrwx 1 root root 15 Jan 1 2000 S25netfs -> ../init.d/netfs

lrwxrwxrwx 1 root root 14 Jan 1 2000 S26apmd -> ../init.d/apmd

lrwxrwxrwx 1 root root 16 Jan 1 2000 S28autofs -> ../init.d/autofs

lrwxrwxrwx 1 root root 14 Jan 1 2000 S55sshd -> ../init.d/sshd

lrwxrwxrwx 1 root root 20 Jan 1 2000 S56rawdevices -> ../init.d/rawdevices

lrwxrwxrwx 1 root root 16 Jan 1 2000 S56xinetd -> ../init.d/xinetd

lrwxrwxrwx 1 root root 14 Feb 1 2003 S58ntpd -> ../init.d/ntpd

lrwxrwxrwx 1 root root 13 Jun 21 10:42 S60afs -> ../init.d/afs

……

lrwxrwxrwx 1 root root 18 Jan 1 2000 S80sendmail -> ../init.d/sendmail

lrwxrwxrwx 1 root root 13 Jan 1 2000 S85gpm -> ../init.d/gpm

lrwxrwxrwx 1 root root 15 Mar 22 08:24 S85httpd -> ../init.d/httpd

……

lrwxrwxrwx 1 root root 14 Jul 15 09:29 S98wine -> ../init.d/wine

lrwxrwxrwx 1 root root 13 Feb 8 17:26 S99db2 -> ../init.d/db2

lrwxrwxrwx 1 root root 11 Jun 21 08:52 S99local -> ../rc.local



如果用戶想暫時終止某一runlevel的一項服務,只要刪除相對應的鏈接就行了。然而,對鏈接進行手動設置是一項繁重而又易錯的工作,但有一個十分有用的幫手,它的名字叫chkconfig。

分辨沒被終止的服務

要想了解哪些服務沒有被終止,那么用戶需要運行/sbin/chkconfig -list命令。下面展示了命令執行后的顯示結果,用戶可以清楚地看到每一行有八項內容。chkconfig命令還可以用來開啟或終止某一服務。

afs 0:off 1:off 2:off 3:on 4:off 5:on 6:off

anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off

apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off

crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off

………

上面左起第一列顯示的是服務的名稱,接下來的第二列顯示的是所在的runlevel和當前狀態。例如ntpd(網絡時間無交互后臺程序)服務被設定只在runlevel 3和runlevel 5開啟,而sshd服務則在runlevel 2、3、4和5開啟。

也許用戶會發現,在runlevel 0和runlevel 6沒有啟動的服務,是因為runlevel 0 和runlevel 6表示系統終止,當然沒有服務了。

從屬關系

正如上文提到的,系統啟動時要逐一運行每個runlevel的服務。也許用戶很容易想到,如果可以使多個服務同時運行,必然會節省大量的系統啟動時間。但不幸的是這種方法行不通,原因是各項服務之間都存在著從屬關系。

傳統的Linux系統并不能給用戶指明服務間的從屬關系。

現在通過一個簡單的例子講解如何明確服務間的從屬關系。從ntpd服務需要一個網絡基礎可以得出結論——ntpd服務要依靠網絡服務,這一關系可以用下面的語句表示:

ntpd:network

用戶可以確定netfs服務也要依靠網絡服務,autofs服務也要依靠網絡服務,現在就可以列出一個簡單的從屬關系表:

ntpd : network

netfs : network

autofs : network

它的含義是一旦網絡服務開啟完畢,可以同時運行ntpd、netfs和autofs服務。假設啟動每項服務需要10秒的時間,用傳統的方法啟動上面的四項服務就需要40秒的時間,而使用上面提到的方法只需要20秒就夠了。事實上,各項服務的啟動時間是不同的,但道理是一樣的。

再例如,lpd服務(S60lpd)要在網絡服務后運行,但對于一個擁有噴墨打印機接口的家用系統而言,不必先建立網絡連接再安裝打印機。在這種情況下,更合理的狀況應該是打印機服務先于網絡服務。另外crond服務(S90crond)同樣應該在網絡服務后運行。但是,除非用戶有可以使用遠端計算機文件的cron文件,否則crond服務根本不必在網絡服務前運行。

可以看出,有些服務要依靠其它服務才能運行,有些服務是完全獨立的,它們運行與否與其它服務毫無關系。因此,可以使這些與其它服務無從屬關系的服務同時運行。當這些服務啟動后,用戶就可以啟動以它們為運行前提的其它服務,這樣環環相扣、循序漸進,直到啟動整個系統。

聽起來這似乎是一個十分復雜的過程,但是已經為用戶準備了一件十分好用的工具,這就是“Make”程序。“Make”程序一般與編譯軟件一起使用,它可以為用戶提供所需要的完整架構,用戶只需要告訴它各項服務間的從屬關系就行了。


關鍵字:網絡服務、過程、架構
分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站