欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Linux啟動(dòng)全線(xiàn)提速法

來(lái)源


Linux啟動(dòng)全線(xiàn)提速法

Linux系統是十分優(yōu)秀的操作系統,但啟動(dòng)時(shí)間長(cháng)是該系統的缺點(diǎn)之一。那么能否通過(guò)一些設置來(lái)縮短Linux系統的啟動(dòng)時(shí)間呢?當然可以。本文將向讀者展示如何在不犧牲Linux系統可用性的前提下,縮短系統的啟動(dòng)時(shí)間。要實(shí)現這一目標,需要了解系統的各類(lèi)服務(wù)及它們之間的從屬關(guān)系,進(jìn)而使它們在條件允許的前提下同時(shí)啟動(dòng),從而大大節省系統啟動(dòng)時(shí)間。

 

準備工作

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

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

Linux系統的啟動(dòng)順序和runlevel

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


init如何初始化系統

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

系統服務(wù)

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

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

動(dòng)手改造

服務(wù)的啟動(dòng)和終止

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

另外,rc指令程序可以根據鏈接名稱(chēng)的兩個(gè)十進(jìn)制數,確定鏈接的執行順序,數字小的先執行。

下面將舉一個(gè)例子,幫助用戶(hù)加深理解。當用戶(hù)啟動(dòng)系統進(jìn)入runlevel 5時(shí),首先要執行的鏈接是K05saslauthd,由于它是以“K”打頭的,而且后兩位十進(jìn)制數要小于其它以“K”打頭的鏈接。第一個(gè)要執行的啟動(dòng)鏈接是S05kudzu。最后執行的將是S99local。下面是runlevel 5狀態(tài)下指向程序的鏈接。

# 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

如果用戶(hù)想暫時(shí)終止某一runlevel的一項服務(wù),只要刪除相對應的鏈接就行了。然而,對鏈接進(jìn)行手動(dòng)設置是一項繁重而又易錯的工作,但有一個(gè)十分有用的幫手,它的名字叫chkconfig。

分辨沒(méi)被終止的服務(wù)

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

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
………

上面左起第一列顯示的是服務(wù)的名稱(chēng),接下來(lái)的第二列顯示的是所在的runlevel和當前狀態(tài)。例如ntpd(網(wǎng)絡(luò )時(shí)間無(wú)交互后臺程序)服務(wù)被設定只在runlevel 3和runlevel 5開(kāi)啟,而sshd服務(wù)則在runlevel 2、3、4和5開(kāi)啟。

也許用戶(hù)會(huì )發(fā)現,在runlevel 0和runlevel 6沒(méi)有啟動(dòng)的服務(wù),是因為runlevel 0 和runlevel 6表示系統終止,當然沒(méi)有服務(wù)了。

從屬關(guān)系

正如上文提到的,系統啟動(dòng)時(shí)要逐一運行每個(gè)runlevel的服務(wù)。也許用戶(hù)很容易想到,如果可以使多個(gè)服務(wù)同時(shí)運行,必然會(huì )節省大量的系統啟動(dòng)時(shí)間。但不幸的是這種方法行不通,原因是各項服務(wù)之間都存在著(zhù)從屬關(guān)系。

傳統的Linux系統并不能給用戶(hù)指明服務(wù)間的從屬關(guān)系。

現在通過(guò)一個(gè)簡(jiǎn)單的例子講解如何明確服務(wù)間的從屬關(guān)系。從ntpd服務(wù)需要一個(gè)網(wǎng)絡(luò )基礎可以得出結論——ntpd服務(wù)要依靠網(wǎng)絡(luò )服務(wù),這一關(guān)系可以用下面的語(yǔ)句表示:

ntpd:network

用戶(hù)可以確定netfs服務(wù)也要依靠網(wǎng)絡(luò )服務(wù),autofs服務(wù)也要依靠網(wǎng)絡(luò )服務(wù),現在就可以列出一個(gè)簡(jiǎn)單的從屬關(guān)系表:

ntpd : network
netfs : network
autofs : network

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

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

可以看出,有些服務(wù)要依靠其它服務(wù)才能運行,有些服務(wù)是完全獨立的,它們運行與否與其它服務(wù)毫無(wú)關(guān)系。因此,可以使這些與其它服務(wù)無(wú)從屬關(guān)系的服務(wù)同時(shí)運行。當這些服務(wù)啟動(dòng)后,用戶(hù)就可以啟動(dòng)以它們?yōu)檫\行前提的其它服務(wù),這樣環(huán)環(huán)相扣、循序漸進(jìn),直到啟動(dòng)整個(gè)系統。

聽(tīng)起來(lái)這似乎是一個(gè)十分復雜的過(guò)程,但是已經(jīng)為用戶(hù)準備了一件十分好用的工具,這就是“Make”程序。“Make”程序一般與編譯軟件一起使用,它可以為用戶(hù)提供所需要的完整架構,用戶(hù)只需要告訴它各項服務(wù)間的從屬關(guān)系就行了。

結論

綜上所述,縮短系統啟動(dòng)時(shí)間的方法就是先搞清各項服務(wù)間的從屬關(guān)系,然后編排合理的啟動(dòng)次序,盡可能使限制條件相同的服務(wù)同時(shí)啟動(dòng),當然別忘了只啟動(dòng)需要的服務(wù)。由于Linux系統的種類(lèi)不同,這種方法產(chǎn)生的效果也不盡相同,大家在使用過(guò)程中還要具體問(wèn)題具體分析。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
淺析 Linux 初始化 init 系統: sysvinit
CentOS7/RHEL7 systemd詳解
Linux進(jìn)程的基礎 - 海闊&任我行的日志 - 網(wǎng)易博客
linux的運行模式:runlevel
6.3 init進(jìn)程
通過(guò)update-rc.d來(lái)管理Ubuntu系統的自動(dòng)啟動(dòng)程序(gitlab)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久