<b> </b>
<b>第六章</b><b>管理程序和計劃任務</b>
<b>1. linux的引導流程</b>
2.1 引導流程總覽
2.2 系統初始化程序和檔案
a. <b>init</b><b>程序</b>
Ø <b>由linux</b><b>核心加載運作 /sbin/init </b><b>程式</b>
Ø <b>是系統中第一個程序,pid</b><b>(程序标記)号永遠為1</b>
Ø <b>配置檔案:/etc/inittab </b>
b.inittab配置檔案
l id,也稱标記字段,由1~4個字元組成,用以差別于其他行的配置,是以id标記字段必須是唯一的
l runlevels,運作級别字段,用于指定該記錄在哪些運作級别中運作,取值數字0~6,後面會對其進行詳細解釋
l action ,動作類型字段,動作類型字段描述了該行配置所對應的操作類别,一般為固定值,較常用的類型如下:
<b> initdefault</b>:設定初始化系統後預設進入的運作級别
<b> sysinit</b>:設定系統初始化的操作腳本
<b> wait</b>:init程序将等待該行配置所對應的腳本操作完成後,再繼續執行其他操作
<b> ctrlaltdel</b>:設定當使用者按下ctrl+alt+delete組合鍵後的操作
<b> powerfail</b>:設定當系統收到斷電信号(使用不間斷電源)時采取何種動作
<b> powerokwait</b>:設定當系統收到恢複供電信号時采取何種動作
<b> respawn</b>:一旦該行配置所對應的程序被終止,則重新啟動該程序
l process,程式或腳本字段,此字段用于指定該行配置所對應的實際操作,可以是具體的指令、腳本程式等
c 其他的啟動檔案
Ø <b>/etc/rc.d/rc.sysinit </b>
<b>由init</b><b>程序調用執行</b>
<b>完成設定網絡、主機名、加載檔案系統等初始化工作 </b>
Ø <b>/etc/rc.d/rc</b><b>腳本檔案</b>
<b>根據指定的運作級别, </b><b>加載或終止相應的系統服務</b>
Ø <b>/etc/rc.local</b><b>腳本檔案</b>
<b>由rc</b><b>腳本調用執行</b>
<b>儲存使用者定義的需開機後自動執行的指令</b>
<b> </b>
2.3 運作級别控制
Ø <b>運作級别 </b>
<b>指運作linux</b><b>系統的不同模式</b>
<b>每種模式對應不同的服務程式組合</b>
Ø <b>預設的7</b><b>種運作級别</b>
<b>0</b><b>:關機狀态</b>
<b>1</b><b>:單使用者模式</b>
<b>2</b><b>:字元界面的多使用者模式(不支援網絡)</b>
<b>3</b><b>:字元界面的完整多使用者模式</b>
<b>4</b><b>:未配置設定使用</b>
<b>5</b><b>:圖形界面的多使用者模式</b>
<b>6</b><b>:重新啟動</b>
Ø <b>調整預設運作級别</b>
Ø <b>修改 /etc/inittab </b><b>檔案中的 </b><b>initdefault </b><b>配置行 </b>
id:3:initdefault:
Ø <b>檢視運作級别</b>
<b>使用runlevel</b><b>指令,分别顯示:</b>
切換前的運作級别、目前運作級别
Ø <b>臨時切換運作級别</b>
<b>使用init</b><b>指令結合 0-6 </b><b>的運作級别參數</b>
Ø 系統服務的啟動控制
<b>chkconfig</b><b>檢視系統服務的啟動狀态</b>
<b>格式:chkconfig --list</b>
<b> chkconfig --list </b><b>服務名稱</b>
<b>服務腳本位置:/etc/init.d </b><b>à /etc/rc.d/init.d </b>
<b>設定系統服務的啟動狀态</b>
<b>格式:chkconfig --level </b><b>級别清單 </b><b>服務名 on|off </b>
<b>ntsysv</b><b>系統服務管理工具</b>
<b>格式:ntsysv </b>
<b> ntsysv --level </b><b>級别清單 </b>
2. 程序管理
3.1 檢視程序
1. <b>ps</b><b>指令</b>
<b>用途:檢視靜态的程序統計資訊</b>
<b>格式:ps aux</b>
<b> ps -elf</b>
2. <b>top</b><b>指令</b>
<b>用途:檢視動态的程序排名資訊 </b>
按p鍵根據cpu占用情況對程序清單進行排序
按m鍵根據記憶體占用情況進行排序
按n鍵根據啟動時間進行排序
按h鍵可以獲得top程式的線上幫助資訊
按q鍵可以正常退出top程式
使用空格鍵可以強制更新程序狀态顯示
3.<b> pgrep</b><b>指令</b>
<b>用途:根據特定條件查詢程序pid</b><b>資訊</b>
<b>pgrep "init" </b><b>; pgrep -l "log" </b><b>; pgrep -l -u teacher -t tty1</b>
4.<b> pstree</b><b>指令</b>
<b>用途:以樹型結構顯示各程序間的關系</b>
3.2 控制程序
1.啟動程序
<b>手工啟動</b>
<b>前台啟動:使用者輸入指令,直接執行程式</b>
<b>背景啟動:在指令行尾加入“&”</b><b>符号</b>
<b>排程啟動</b>
<b>使用at</b><b>指令,設定在某個特定的時間,執行一次任務</b>
<b>使用crontab</b><b>指令,設定按固定的周期(如每天、每周等)重複執行預先計劃好的任務</b>
2.改變程序的運作方式
<b>ctrl+z </b><b>組合鍵</b>
<b>将目前程序挂起,即調入背景并停止執行</b>
<b>jobs</b><b>指令</b>
<b>檢視處于背景的任務清單</b>
<b>fg</b><b>指令</b>
<b>将處于背景的程序恢複到前台運作,需指定任務序号</b>
3.終止程序執行
<b>ctrl+c</b><b>組合鍵</b>
<b>中斷正在執行的指令</b>
<b>kill</b><b>、killall</b><b>指令</b>
<b>kill</b><b>用于終止指定pid</b><b>号的程序</b>
<b>killall</b><b>用于終止指定名稱的所有程序</b>
<b>-9 </b><b>選項用于強制終止</b>
<b>pkill -9 -t pts/1</b>
3. 計劃任務管理
4.1 <b>at</b><b>一次性任務設定</b>
<b>在指定的日期、時間點自動執行預先設定的一些指令操作,屬于一次性計劃任務</b>
<b>服務腳本名稱:/etc/init.d/atd </b>
<b>設定格式:at [hh:mm] [yyyy-mm-dd]</b>
<b>注意:使用at</b><b>指令設定的任務隻在指定時間點執行一次,若隻指定時間則表示當天的該時間,若隻指定日期則表示該日期的目前時間;可以在at</b><b>互動環境中輸入多條指令,最後按ctrl</b><b>+d</b><b>組合鍵送出;對應的系統服務atd</b><b>必須已經運作</b>
4.2 crontab周期性任務設定
<b>按照預先設定的時間周期(分鐘、小時、天……</b><b>)重複執行使用者指定的指令操作,屬于周期性計劃任務</b>
注意:全局配置和系統預設配置中的内容一般不需要使用者去修改,使用者隻需設定/var/spool/cron/目錄下與本帳号同名的檔案即可,接下來介紹如何設定使用者自己的計劃任務
<b>管理cron</b><b>計劃任務</b>
<b>編輯計劃任務:crontab -e [-u </b><b>使用者名]</b>
<b>檢視計劃任務:crontab -l [-u </b><b>使用者名]</b>
<b>删除計劃任務:crontab -r [-u </b><b>使用者名]</b>
<b> crontab</b><b>任務的配置格式</b>
<b>注意:時間數值的特殊表示方法</b>
<b>* </b><b>表示該範圍内的任意時間</b>
<b>, </b><b>表示間隔的多個不連續時間點</b>
<b>- </b><b>表示一個連續的時間範圍</b>
<b>/ </b><b>指定間隔的時間頻率</b>
l <b>示例1</b><b>:</b>
[root@localhost ~]# <b>crontab -e</b>
50 7 * * * /sbin/service sshd start
50 22 * * * /sbin/service sshd stop
0 * */5 * * /bin/rm -rf /var/ftp/pub/*
30 7 * * 6 /sbin/service httpd restart
30 17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd