linux系統中獨立進程與非獨立進程
一、linux系統啓動的過程及順序:
* 計算機加電,並調用bois 設置
* bois 調用硬盤主引導記錄 mbr中的grub引導器
* grub 引導器將調用內核,進行硬件檢測與初始化
* 內核將調用linux 中的第一個進程init 進程
* init進程稱爲linux系統的父進程,即由該進程調用linux系統中的其它所有的子進程、
* 最終提示輸入用戶名與密碼、
二、init 進程介紹:
* linux中的init進程,通過ps -e命令查看後,其進程編號爲1 ,表示該進程是第一個啓動的進程、
linux進程是由linux的內核調用、
* linux系統中的其它進程,均要求由init進程調用,因此稱init進程爲父進程、
* linux進程其它要要按照對應的配置文件進行運行、
其它對應的配置文件爲 /etc/inittab
三、inittab配置文件的介紹:
1、init 進程的配置文件位置
/etc/inittab
2、linux系統的不同級別及介紹:
系統中共存在七個級別,分別是:級別 1 2 3 4 5 6 0
級別 0 --進入該級別,系統即關閉所有的程序,並斷開電源 [關機]
級別 1 --進入該級別 只允許root進入,不支持網絡,該級別用於root用戶進行系統維護、
級別 2 --linux的純字符界面模式,不支持網絡,但支持多個用戶在當前系統中登錄、
級別 2 --linux的純字符界面模式,不支持網絡,但支持多個用戶在當前系統中登錄、
級別 3 --linux的純字符界面模式,支持網絡,支持多用戶登錄,linux系統的各種服務器,通常均
運行於該級別下、
級別 4 --linux系統未對該級別定義、
級別 4 --linux系統未對該級別定義、
級別 5 --linux系統的圖形界面,通常作爲初學者及圖形工作站使用、
級別 6 --linux系統會關閉所有的程序,並且重新啓動系統、
3、inittab配置文件的內容說明:
1)、該文件中,每一行均採用如下格式
編號 : 運行級別 : 觸發動作 : 運行命令
2)、編號與運行級別:
編號 一項,在/etc/inittab文件,只需要確保不重複即可,通常編號採用1 至 4 個字符組成、
運行級別 一項,指當前的觸發動作是在哪個級別發生的,只有指定的級別下發生該動作、
纔會去自動執行具體的命令、
3)、觸發動作介紹:
* initdefault -- 該動作爲當linux啓動時,默認要進入的級別
可以將該動作的級別,由原來的5號級別更改爲3號級別、
* sysinit -- 該動作爲當linux啓動時,要進行初始化、
該動作會要求自動執行一個程序 /etc/rc.d/rc.sysinit
* wait -- 進入相應的級別,會自動執行一次對應的命令、
如 13:3:wait:/etc/rc.d/rc 3
表示 進入級別 3就自動運行一次 rc 3 命令
注:rc 3命令,會調用 /etc/rc3.d目錄下的所有程序,如果這些程序以k開頭
即表示要關閉的,以s開頭的即表示要啓動的、
* ctrlaltdel -- 在任何級別下,按下鍵盤上的ctrl+alt+del 三鍵,即執行命令
/sbin/shutdown -t3 -r now 該命令爲立刻重啓計算機、
* powerfail -- 當ups告知外界斷電,則會執行對應的命令,如
該命令爲將在兩分鐘以後系統關閉 [電源失敗]
* poweerokwait -- 在準備關機時,ups告知外界電力恢復,則會執行對應的命令、
如 /sbin/shutdown -c ,即表示取消關機命令、[電源正常]
* respawn -- 當某一個指定的程序結束後,會再執行一次、該動作,通常是針對於虛擬字符
界面而言,即當用戶退出第一個虛擬字符界面時,系統會再運行一次第一個虛擬
字符界面,要求用戶登錄、對應命令爲 /sbin/mingetty tty1
四、獨立進程與非獨立進程介紹:
1、獨立進程:
* 所有的獨立進程及其進程腳本 均保存在獨立進程目錄,即 /etc/rc.d/init.d
* 所有的獨立進程,均可以由系統管理員手工啓動及控制,也可以使指定的獨立進程,在指定的系統
級別下自動運行或停止、
級別下自動運行或停止、
* 針對於獨立進程而言,無論是否存在用戶訪問,其會始終佔用系統資源、
通常情況下,獨立進程是那些使用較多的並且是比較重要的系統程序、
2、非獨立進程:
* 所有的非獨立進程及其進程腳本,均保存在非獨立進程目錄,即 /etc/xinetd.d
* 非獨立進程通常是那些使用比較少的,佔用系統資源較少的進程、
當有用戶訪問時,系統會啓動非獨立進程爲用戶提供服務,當用戶訪問結束後,系統會關這些非獨立
進程、
startx& -----在純字符界面下進入圖形界面
五、獨立進程的控制與管理方法:
1、使用命令查看當前系統所在的級別:
runlevel
如 查看結果爲 N 3 ,表示系統剛啓動,便直接進入了 3號級別、
若結果爲 5 3 ,表示系統剛從5號級別轉到當前的 3號級別
注:在級別 3下,可以輸入命令 startx& 在級別3下啓動圖形界面、
2、在linux系統中,使用命令,在各種級別之間進行切換:
init 對應的級別號
如 init 5
3、在linux系統中,每個運行級別所對應的級別目錄
級別 0 /etc/rc.d/rc0.d
級別 1 /etc/rc.d/rc1.d
級別 2 /etc/rc.d/rc2.d
級別 3 /etc/rc.d/rc3.d
級別 4 /etc/rc.d/rc4.d
級別 5 /etc/rc.d/rc5.d
級別 6 /etc/rc.d/rc6.d
說明:用戶可以打開每個級別所對應的目錄,所在目錄下均會存在以下兩種文件,即一種是以 k
開頭的文件,該類文件表示進入該級別後要關閉的程序
另一種是以 s 開頭的文件,該類文件表示進入該級別後要運行的程序
另一種是以 s 開頭的文件,該類文件表示進入該級別後要運行的程序
每一種文件都有對應的編號,如 sookillall ,00即爲程序的編號,表示執行該程序的先後順序,編號越小,則執行優先
級越高、
級越高、
4、級別0與級別6的級別目錄說明:
級別6 目錄內容:
SOOKillall 關閉所有進程
SO1reboot 重啓系統
除此以外,其餘的均爲以K 開頭的文件
級別0 目錄內容:
SOOkillall 關閉所有進程
SO1halt 掛起 [關閉電源]
除此以外,其餘的均爲以 K 開頭的文件、
5、使用命令,使指定的獨立進程在進入某一個級別後會自動運行、
方法一: 主菜單丨系統設置丨服務器設置丨服務
該方法只能設定獨立進程在當前級別下自動運行
方法二: 在字符界面下,使用命令 ntsysv
該方法也只能設定獨立進程在當前級別下自動運行
方法三: 在字符界面下,使用命令 chkconfig
* 使用 chkconfig 命令,查看指定的獨立進程能在哪些級別下自動運行
chkconfig --list獨立進程名稱 on
如 chkconfig --level 35 smb on
注意:若要使指定的獨立進程在指定的相關級別下不運行,則只需要將on 改爲 off
以上三種方法,僅僅是配置了指定的獨立進程,在進入某一個對應的級別以後會自動運行、
如果現在已經在指定的級別中,獨立進程是不會運行的、
6、通過命令,使得每一個獨立進程在當前的級別下手工運行:
[而第5點中的三種方法,是下次及以後進入對應級別再自動運行]
方法一:打開主菜單丨系統設置丨服務器設置丨服務
選擇所要運行的獨立進程,並單擊工具欄中的“開始”即可
方法二:直接運行獨立進程的控制腳本即可
* 確定獨立進程腳本所在的位置以及名稱
所有獨立進程腳本,全部放於, /etc/rc.d/init.d
如,其中有一腳本名稱爲 smb
如果在字符界面下,啓動smb,則方法是
/etc/rc.d/init.d/smb stop start
若是停止
/etc/rc.d/init.d/smb stop
重啓 /etc/rc.d/init.d/smb restart
查看狀態 /etc/rc.d/init.d/smb status
方法三: 使用 service 命令,運行腳本
格式:
service 獨立進程腳本名 控制方法
service 獨立進程腳本名 控制方法
說明:service 命令,可以自動到 /etc/rc.d/init.d目錄下查找對應的獨立進程腳本
如
service smb start 打開
service smb stop 關閉
service smb restart 重啓
service smb status 查看
六、非獨立進程:
在/etc/xinetd.d目錄,採用 vi軟件打開非獨立進程的控制腳本,如 telnet
將其中的 disable=yes 更改爲 disable=no
完成,保存退出,並且要重啓xinetd獨立進程,即 service xinetb restart
注意:將 非獨立進程腳本中的disable 值更改爲 no ,其目的主要在於使 xinetd 可以
對該非獨立進程進行控制管理,包括啓動與停止等工作、
如果 disable值爲yes,則表示xinetd不能控制管理及啓動該非獨立進程,因此該非獨立進程無法提供服務、
對該非獨立進程進行控制管理,包括啓動與停止等工作、
如果 disable值爲yes,則表示xinetd不能控制管理及啓動該非獨立進程,因此該非獨立進程無法提供服務、