Archlinux啟動指令碼縱覽

2021-05-24 15:01:05 字數 1563 閱讀 9893

arch linux 的啟動非常簡單,類似於 *bsd。執行的第乙個啟動指令碼是 /etc/rc.sysinit,然後是 /etc/rc.multi(正常啟動),最後是 /etc/rc.local。當啟動的是 runlevel 1(單使用者模式)時,/etc/rc.single 將會代替 /etc/rc.multi 執行。在 /etc/rc?.d/ 目錄下,你將不會找到系列沒完沒了的符號鏈結來為所有可能的 runlevel(執行級別)定義啟動序列。由於這樣,arch 僅提供了三個 runlevels(執行級別),如果你考慮要用 runlevel 5 來啟用 x 的話。啟動指令碼使用的是檔案 /etc/rc.conf 內的變數和定義以及 /etc/rc.d/functions 指令碼裡定義的一套一般函式集。如果你要寫自己的後台程式檔案,你應該看看這個檔案以及現有的指令碼。

啟動指令碼縱覽

/etc/rc.sysinit

/etc/rc.single

/etc/rc.multi

/etc/rc.local

/etc/rc.shutdown

/etc/rc.d/*

/etc/rc.sysinit

主要的系統啟動指令碼。它引導著一些重要的東西如掛載檔案系統、執行 devfsd、啟用交換分割槽、載入模組、設定本地化引數等等。或許你永遠也不需要編輯這個檔案!

/etc/rc.single

單使用者啟動。正常啟動下不使用。如果系統啟用了單使用者模式,例如啟動或正常的多使用者模式下使用了 init 1 命令,除syslogd,klogd 和 devfsd外,這個指令碼確保了沒有後台程式在執行。在確保遠端使用者不能做出一些可能導致資料丟失或損壞的情況下,如果需要對系統做出任何的修改,單使用者 模式是很有用的。

對於桌面使用者來說,這個爛模式通常是沒什麼用的。或許你永遠也不需要編輯這個指令碼。

/etc/rc.multi

多使用者啟動指令碼。它會在 /etc/rc.local 之後啟動所有在 daemons 佇列中預設的後台程式(/etc/rc.conf 中設定)。你應該不需要去編輯它。

/etc/rc.local

本地多使用者啟動指令碼。這是放置你希望系統在啟動過程的最後來執行的命令的好地方,它也是最後以及唯一乙個你應該修改(如果有需要)的指令碼,你有完全的自主權為這個指令碼加入些什麼。

大多數普通的系統設定任務,例如載入模組,更改控制台字型或是設定裝置,通常都有它們專屬的位置。為避免混亂,rc.local 的加入不應該像你的 /etc/profile.d/ 或其它配置檔案那樣的隨意。

/etc/rc.shutdown

系統關閉指令碼。它停止後台程式,缷載檔案系統,撤消交換分割槽等,別碰它。

/etc/rc.d/*

這個目錄包含的後台程式指令碼引用自 rc.conf 的 daemons 佇列。可以在啟動之外被喚起,你可以在系統執行的時候使用這些指令碼來管理服務。例如如下的命令:

# /etc/rc.d/postfix stop

將會停止 postfix。當然,只有在相應的軟體包安裝後(如例中的 postfix)指令碼才會存在。基系統安裝後你不會有很多的指令碼,但其餘所有相應的後台指令碼一定是在這裡結束的。除符號鏈結的爭論外,這個目錄與其它發行 版的 /etc/rc3.d/ 或 /etc/init.d/ 非常的相似。

Oracle 啟動指令碼

大家都注意到用oracle自帶的dbstart指令碼無法在系統啟動時自動啟動oracle資料庫,下面介紹oracle啟動指令碼的編寫和設定!最簡單的指令碼示例 bin sh sqlplus as sysdba oracle instance started.total system global a...

bash啟動指令碼

啟動指令碼是bash啟動時自動執行的指令碼。使用者可以把一些環境變數的設定和alias umask設定放在啟動指令碼中,這樣每次啟動shell時這些設定都自動生效。思考一下,bash在執行啟動指令碼時是以fork子shell方式執行的還是以source方式執行的?啟動bash的方法不同,執行啟動指令...

bash啟動指令碼

啟動指令碼是bash啟動時自動執行的指令碼。使用者可以把一些環境變數的設定和alias umask設定放在啟動指令碼中,這樣每次啟動shell時這些設定都自動生效。思考一下,bash在執行啟動指令碼時是以fork子shell方式執行的還是以source方式執行的?啟動bash的方法不同,執行啟動指令...