linux 下 osw隨作業系統啟動而自動啟動的標準指令碼,linuxosw

來源:互聯網
上載者:User

linux 下 osw隨作業系統啟動而自動啟動的標準指令碼,linuxosw

linux 下 osw隨作業系統啟動而啟動的標準指令碼。osw是指--os watcher,這是一個監控os各項指標的shell指令碼。osw的監控資料一般用於oracle技術人員評估os各項資源的使用方式,該使用方式會作為oracle 技術人員評估一些oracle 資料庫行為(比如節點驅逐等)的參考依據。

 

[oracle@rac2 ~]$ cat /etc/rc.local#!/bin/sh## This script will be executed *after* all the other init scripts.# You can put your own initialization stuff in here if you don't# want to do the full Sys V style init stuff.touch /var/lock/subsys/local  /bin/sh /home/oracle/oswbb/autostartosw.sh --->上面一行是新加的

/home/oracle/oswbb/autostartosw.sh的指令碼內容如下:cd /home/oracle/oswbb/usr/bin/nohup /home/oracle/oswbb/startOSWbb.sh & 注意:此時的osw安裝在/home/oracle/oswbb目錄中。

 


linux作業系統的詳細啟動過程,(硬體啟動的先後順序)

當使用者開啟PC的電源,BIOS開機自我測試 (POST),按BIOS中設定的啟動裝置(通常是硬碟)啟動,
接著啟動裝置上安裝的引導程式lilo或grub開始引導Linux,Linux首先進行核心的引導,
接下來執行init程式,init程式調用了rc.sysinit和rc等程式,rc.sysinit和rc當完成系
統初始化和運行服務的任務後,返回init;init啟動了mingetty後,開啟了終端供使用者登
錄系統,使用者登入成功後進入了Shell,這樣就完成了從開機到登入的整個啟動過程。

載入核心

LILO啟動之後,如果你選擇了Linux作為準備引導的作業系統,第一個被載入的東西就是核心。請記住此時的電腦記憶體中還不存在任何作業系統, PC(因為它們天然的設計缺陷)也還沒有辦法存取機器上全部的記憶體。因此,核心就必須完整地載入到可用RAM的第一個MB之內。為了實現這個目的,核心是被壓縮了的。這個檔案的頭部包含著必要的代碼,先設定CPU進入安全模式(以此解除記憶體限制),再對核心的剩餘部分進行解壓縮。

執行核心

核心在記憶體中解壓縮之後,就可以開始運行了。此時的核心只知道它本身內建的各種功能,也就是說被編譯為模組的核心部分還不能使用。最基本的是,核心必須有足夠的代碼設定自己的虛擬記憶體子系統和根檔案系統(通常就是ext2檔案系統)。一旦核心啟動運行,對硬體的檢測就會決定需要對哪些裝置驅動程式進行初始化。從這裡開始,核心就能夠掛裝根檔案系統(這個過程類似於Windows識別並存取C盤的過程)。核心掛裝了根檔案系統之後,將啟動並運行一個叫做 init的程式。

注意:在這裡我們故意略去了Linux核心啟動的許多細節,這些細節只有核心開發人員才感興趣。如果你好奇的話,可以訪問http://www.redhat.com:8080地址處的 “Kernel Hackers Guide”。

init進程

init進程是非核心進程中第一個被啟動啟動並執行,因此它的進程編號PID的值總是1。init讀它的設定檔/etc/inittab,決定需要啟動的運行層級(Runlevel)。從根本上說,運行層級規定了整個系統的行為,每個層級(分別由0到6的整數表示)滿足特定的目的。如果定義了 initdefault層級,這個值就直接被選中,否則需要由使用者輸入一個代表運行層級的數值。

輸入代表運行層級的數字之後,init根據/etc/inittab檔案中的定義執行一個命令指令碼程式。預設的運行層級取決於安裝階段對登入程式的選擇:是使用基於文本的,還是使用基於X-Window的登入程式。

rc命令指令碼程式

我們已經知道,當運行層級發生改變時,將由/etc/inittab檔案定義需要運行哪一個命令指令碼程式。這些命令指令碼程式負責啟動或者停止該運行層級特定的各種服務。由於需要管理的服務數量很多,因此需要使用rc命令指令碼程式。其中,最主要的一個是/etc/rc.d/rc,它負責為每一個運行層級按照正確的順序調用相應的命令指令碼程式。我們可以想象,這樣一個命令指令碼程式很容易變得難以控制!為了防止這類事件的發生,需要使用精心設計的方案。

對每一個運行層級來說,在/etc......餘下全文>>
 
LINUX作業系統的啟動過程

當使用者開啟PC的電源,BIOS開機自我測試 (POST),按BIOS中設定的啟動裝置(通常是硬碟)啟動,
接著啟動裝置上安裝的引導程式lilo或grub開始引導Linux,Linux首先進行核心的引導,
接下來執行init程式,init程式調用了rc.sysinit和rc等程式,rc.sysinit和rc當完成系
統初始化和運行服務的任務後,返回init;init啟動了mingetty後,開啟了終端供使用者登
錄系統,使用者登入成功後進入了Shell,這樣就完成了從開機到登入的整個啟動過程。

載入核心

LILO啟動之後,如果你選擇了Linux作為準備引導的作業系統,第一個被載入的東西就是核心。請記住此時的電腦記憶體中還不存在任何作業系統, PC(因為它們天然的設計缺陷)也還沒有辦法存取機器上全部的記憶體。因此,核心就必須完整地載入到可用RAM的第一個MB之內。為了實現這個目的,核心是被壓縮了的。這個檔案的頭部包含著必要的代碼,先設定CPU進入安全模式(以此解除記憶體限制),再對核心的剩餘部分進行解壓縮。

執行核心

核心在記憶體中解壓縮之後,就可以開始運行了。此時的核心只知道它本身內建的各種功能,也就是說被編譯為模組的核心部分還不能使用。最基本的是,核心必須有足夠的代碼設定自己的虛擬記憶體子系統和根檔案系統(通常就是ext2檔案系統)。一旦核心啟動運行,對硬體的檢測就會決定需要對哪些裝置驅動程式進行初始化。從這裡開始,核心就能夠掛裝根檔案系統(這個過程類似於Windows識別並存取C盤的過程)。核心掛裝了根檔案系統之後,將啟動並運行一個叫做 init的程式。

注意:在這裡我們故意略去了Linux核心啟動的許多細節,這些細節只有核心開發人員才感興趣。如果你好奇的話,可以訪問http://www.redhat.com:8080地址處的 “Kernel Hackers Guide”。

init進程

init進程是非核心進程中第一個被啟動啟動並執行,因此它的進程編號PID的值總是1。init讀它的設定檔/etc/inittab,決定需要啟動的運行層級(Runlevel)。從根本上說,運行層級規定了整個系統的行為,每個層級(分別由0到6的整數表示)滿足特定的目的。如果定義了 initdefault層級,這個值就直接被選中,否則需要由使用者輸入一個代表運行層級的數值。

輸入代表運行層級的數字之後,init根據/etc/inittab檔案中的定義執行一個命令指令碼程式。預設的運行層級取決於安裝階段對登入程式的選擇:是使用基於文本的,還是使用基於X-Window的登入程式。

rc命令指令碼程式

我們已經知道,當運行層級發生改變時,將由/etc/inittab檔案定義需要運行哪一個命令指令碼程式。這些命令指令碼程式負責啟動或者停止該運行層級特定的各種服務。由於需要管理的服務數量很多,因此需要使用rc命令指令碼程式。其中,最主要的一個是/etc/rc.d/rc,它負責為每一個運行層級按照正確的順序調用相應的命令指令碼程式。我們可以想象,這樣一個命令指令碼程式很容易變得難以控制!為了防止這類事件的發生,需要使用精心設計的方案。

對每一個運行層級來說,在/etc......餘下全文>>
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.