歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux操作系統學習筆記管理進程和計劃任務(1)

Linux操作系統學習筆記管理進程和計劃任務(1)

日期:2017/2/25 10:32:39   编辑:Linux教程

Linux的引導流程

   1、系統啟動的引導流程

  首先系統開機自檢,然後是計算機開機後訪問硬盤並讀取首個扇區的MBR(即主引導目錄),(備注:主引導扇區內部結構,其開頭的446字節內容特指為“主引導記錄”(MBR),其後是4個16字節的“磁盤分區表”(DPT),以及2字節的結束標志(55AA)。主引導扇區記錄著硬盤本身的相關信息以及硬盤各個分區的大小及位置信息,是數據信息的重要入口。如果它受到破壞,硬盤上的基本數據結構信息將會丟失,需要用繁瑣的方式試探性的重建數據結構信息後才可能重新訪問原先的數據。)讀取MBR記錄後,這時進入系統選擇界面,選擇好某個操作系統後,則開始加載內核,接著從INIT進程獲得系統控制權,即進入初始化過程,之後則讀相應的配置文件,具體引導過程如下:

  

   系統初始化進程及文件簡單介紹

1)、INIT進程與配置文件:

   INIT進程:由Linux內核加載運行/sbin/init程序,是系統中第一個進程,也是內核加載的第一個程序,PID(進程標識符)永遠是1;配置文件是:/etc/inittab 

  INIT進程啟動後會啟動其它程序,生成新的進程,這些由init啟動的進程稱之為init進程的子進程,而init進程是這些進程的父進程

   2)、inittab文件結構:

   查看一下/etc/inittab配置文件的內容:

[root@localhost ~]# grep -v "^#" /etc/inittab | grep -v "^$" ==>查看這個文件時過濾掉注釋行和空行
id:5:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
[root@localhost ~]# 

各字段的含義:

id

用於在inittab文件中唯一標識一個配置記錄

runlevels

用於指定該記錄在哪些運行級別中運行

action

用於描述記錄將執行哪種類型的動作

process

用於設置啟動進程所執行的命令

id,也稱標記字段,由1~4個字符組成,用以區別於其他行的配置,所以id標記字段必須是唯一的

runlevels,運行級別字段,用於指定該記錄在哪些運行級別中運行,取值數字0~6,後面會對其進行詳細解釋

action ,動作類型字段,動作類型字段描述了該行配置所對應的操作類別,一般為固定值,較常用的類型如下:

initdefault:設置初始化系統後默認進入的運行級別

sysinit:設置系統初始化的操作腳本

wait:init進程將等待該行配置所對應的腳本操作完成後,再繼續執行其他操作

ctrlaltdel:設置當用戶按下Ctrl+Alt+Delete組合鍵後的操作

powerfail:設置當系統收到斷電信號(使用不間斷電源)時采取何種動作

powerokwait:設置當系統收到恢復供電信號時采取何種動作

respawn:一旦該行配置所對應的進程被終止,則重新啟動該進程

process,程序或腳本字段,此字段用於指定該行配置所對應的實際操作,可以是具體的命令、腳本程序等

   3)、其它系統初始化文件簡介

/etc/rc.d/rc.sysinit

由init進程調用執行

完成設置網絡、主機名、加載文件系統設置時鐘等初始化工作(例如檢查並啟用磁盤配額功能就是在該腳本中完成的)。

/etc/rc.d/rc腳本文件

由init進程調用執行

rc腳本通過指定不同的級別參數分別加載及終止不同的系統服務,進入到相應的系統運行級別。

/etc/rc.local腳本文件

由rc腳本調用執行

rc.local腳本通常由rc腳本在最後進行加載,其作用主要是為管理員自行設置啟動命令提供一種途徑,通常都將一些需要隨系統啟動的命令和腳本添加到該文件中。(保存用戶定義的需開機後自動執行的命令)

2、Linux系統的運行級別

1)、運行級別是指運行Linux系統的不同模式,每種模式對應不同的服務程序組合。

默認的7種運行級別

0:關機狀態

1:單用戶模式

2:字符界面的多用戶模式(不支持網絡)

3:字符界面的完整多用戶模式

4:未分配使用

5:圖形界面的多用戶模式

6:重新啟動

(解釋:Linux系統在運行時,采用的每一種服務搭配稱之為“運行級別”,運行級別類似於Windows系統中的正常啟動、安全模式、帶網絡支持的安全模式……等概念,不同的運行級別使用了不同的服務程序組合,如“套餐”的概念,動感地帶手機資費的10元短信套餐、15元音樂套餐)

2)、調整默認運行級別

修改/etc/inittab 文件中的 initdefault 配置,一般對於普通用戶來說,runlevel設置為5,即為圖像化操作,但是對於服務器來說,默認是設置為3,即字符界面,對於服務器來說,加載圖形化界面是非常耗資源的,影響服務器性能。

[root@localhost ~]# vi /etc/inittab
進入之後有這樣一行:
id:5:initdefault:    ==>這個5的意思就是設置開機後自動進入圖形模式

3)、查看運行級別——runlevel

  runlevel:能顯示切換前的運行級別和當前運行級別

  若臨時切換運行級別,則使用init命令結合0-6的運行級別參數

[root@localhost ~]# runlevel   ==>查看當前運行級別
N 5   ==>第一個字符“N”表示之前未切換過運行級別
[root@localhost ~]# init 3   ==>將運行級別改為3
[root@localhost ~]# runlevel   ==>顯示之前和改後的級別
5 3
[root@localhost ~]# init 6   ==>重啟(這裡我按了ctrl + C ,不然系統要重啟了)
[root@localhost ~]# init 0   ==>系統關機

3、系統服務的啟動控制

1)、查看系統服務的啟動狀態 chkconfig --list [服務名稱]

如查看network這個服務的啟動狀態,則使用:chkconfig --list network

2)、服務腳本位置:/etc/init.d ——> /etc/rc.d/init.d

(/etc/init.d是一個符號鏈接,目標為 /etc/rc.d/init.d,通過這兩個目錄都可以找到系統服務對應的腳本文件)

3)、設置系統服務的啟動狀態 chkconfig --level 級別列表 服務名 on|off

(解釋:運行級別列表:可以是235、 35、5等等形式;服務名稱:注意名稱要正確,如果忘記了可查看/etc/init.d/目錄下的腳本名 ;On|off: 啟動或關閉啟動狀態)

如設置network服務在2345級別下為啟動狀態:chkconfig --level 2345 network on

再次查看它的服務時則可以看到network這個服務在各個模式下的啟用狀態

4)、ntsysv系統服務管理工具——ntsysv [--level 級別列表]

此命令進入類似圖形化的界面,可以集中對所有的系統服務進行設置

使用和chkconfig命令和ntsysv命令跳轉服務啟動狀態的對比說明:

1)當需要設置個別服務在不同運行級別的啟動狀態時,選擇使用chkconfig命令要更有效率

2)當需要同時設置大量服務的啟動狀態時,選擇使用ntsysv配置工具要更加適合

Copyright © Linux教程網 All Rights Reserved