【正文】
程序 段子 進(jìn) 程實(shí) 際 執(zhí)行 的 程序 段 Linux進(jìn)程控制函數(shù) — 修改進(jìn)程 函數(shù)族 exec() :啟動另外的進(jìn)程取代當(dāng)前的進(jìn)程 include int execl(const char *path, const char *arg, ...)。 s t a t u s , 0 ) 。 }}m a i n ( ){ p i d _ t p 1 。 }}父進(jìn)程p10子進(jìn)程p1==0m a i n ( ){ p i d _ t p 1 。p 1 = f o r k ( ) 。允許指定要終止的進(jìn)程名稱,而非 PID Killall命令:與 pkill應(yīng)用方法類似,直接殺死運(yùn)行中的程序 數(shù)據(jù)庫服務(wù)器的父進(jìn)程不能用這些命令殺死(容易產(chǎn)生更多的文件碎片導(dǎo)致數(shù)據(jù)庫崩潰) Linux進(jìn)程控制函數(shù) —— 進(jìn)程 創(chuàng)建 pid=fork()。實(shí)驗(yàn) 一 、 進(jìn)程控制 一、實(shí)驗(yàn)?zāi)康? 加深對進(jìn)程的理解 ,進(jìn)一步認(rèn)識并發(fā)執(zhí)行的實(shí)質(zhì); 分析進(jìn)程爭用資源現(xiàn)象 ,學(xué)習(xí)解決進(jìn)程互斥的方法; 掌握 Linux進(jìn)程 基本 控制 ; 掌握 Linux系統(tǒng) 中 的 軟中斷和 管道通信。 ? 父進(jìn)程用系統(tǒng)調(diào)用 signal()捕捉 來自 鍵盤的中斷信號(即按 Ctrl+C鍵);當(dāng)捕捉到中斷信號后,父進(jìn)程用系統(tǒng)調(diào)用 Kill()向兩個子進(jìn)程發(fā)出信號,子進(jìn)程捕捉到信號后分別輸出下列信息后終止: Child Process l is Killed by Parent! Child Process 2 is Killed by Parent! ? 父進(jìn)程等待兩個子進(jìn)程終止后, 釋放管道并 輸出如下的信息后終止 Parent Process is Killed! 二 、 實(shí)驗(yàn) 內(nèi)容 三、 預(yù)備知識 vi : Linux古老的、功能強(qiáng)大的全屏幕編輯器 啟動方式: $vi 文件名 打開已有的文件或編輯新文件 $vi 先編輯,之后命名存盤 Vi的三 種模式: 命令模式、輸入模式和末行模式 gedit:圖形編輯器 Linux文件編輯 編輯、 編譯、執(zhí)行 /調(diào)試 $vi $cc – o test g $cc – o sub1 $gdb $./test Linux進(jìn)程 管理命令 —— 進(jìn)程 查看 ps命令:報(bào)告進(jìn)程標(biāo)識、用戶、 CPU時間 消耗及其 他屬性 命令單獨(dú)使用可以看到前臺執(zhí)行的進(jìn)程;后臺進(jìn)程可以使用帶參數(shù)的 ps命令(如 ps ax) 提供進(jìn)程的一次性查看,結(jié)果不連續(xù) 結(jié)果數(shù)據(jù)很精確,但數(shù)據(jù)量 龐大 top命令:顯示 CPU占用率為前幾位的進(jìn)程 動態(tài)顯示,輸出結(jié)果連續(xù) 消耗較多的系統(tǒng) 資源 pstree命令:列出當(dāng)前的進(jìn)程,以及它們的樹狀結(jié)構(gòu) 將當(dāng)前的執(zhí)行程序以樹狀結(jié)構(gòu)顯示,彌補(bǔ) ps命令的不足 支持指定特定程序 (PID)或使用者 (USER)作為顯