2007年8月12日 星期日

Process

UNIX 規格的第二版將行程定義為“一個單一或多個執行緒執行的位址空間,並包含那些執行緒所需的資源”
Process 是什麼?
Linux 系統中:『觸發任何一個事件時, 系統都會將他定義成為一個程序,並且給予這個程序一個 ID ,稱為 PID(Process ID),同時依據啟發這個程序的使用者與相關屬性關係, 給予這個 PID 一組有效的權限設定。』 從此以後,這個 PID 能夠在系統上面進行的動作,就與這個 PID 的權限有關了!
而Process 的主要功能是“Linux 中用來記錄執行中程式種種資訊的資料”

Process 的內容
Process儲存了下列資料:
● 執行緒位置
紀錄程式載入記憶體的位置
● 行程識別碼
每個程式都有的獨一無二的PID,透過該碼來識別某個Process ,範圍為1~32768
● 行程優先權
當兩個Process同時存取一個資源時,優先權越高的越先使用
● 記憶體脈絡

● 程式名稱
Process的名稱,以及其相關的引數或參數
● 環境資訊
環境變數
● 檔案描述子
行程開啟一個檔案時,Linux會為這個檔案產生一個檔案描述子,作為檔案的代號。從0開始,不過一般是從3開始,因為012被標準輸入輸出跟錯誤輸出用了
● 安全憑證
Process會紀錄UID/GID ,以便讓Linux知道是哪個使用者,哪個群組所執行,或是Linux判別存取權限之用

Linux 透過procfs ,以檔案與目錄的方式呈現在/proc/PID/目錄中,PID代表的是Process識別碼的編號,例如/proc/1/就是PID為1的Process資料

Process 的特性
●每個Process都是獨立的個體
●父程序結束時需主動結束子行程
●子程序結束時須通知父行程

Process 的相關指令
pstree
檢視Process tree
-a==>顯示程序指令的參數與引數
-A==>以ASCII字元繪製樹狀圖
-h==>標示顯目的標記
-n==>以PID取代名稱排序
-p==>顯示各別的PID
-u==>行程傭有者的名稱
-z==>顯示安全絡脈

ps
Process Status
若沒加任何參數,預設是顯示目前終端機貨主控台中,同ㄧ個UID的行程
*前面不用加“-”*
a==>顯示全部
x==>顯示所有行程,包括連結至終端機設備的行程
w==>寬格式顯示
l==>完整格式顯示
u==>有效UID為user的行程,沒指定user的話預設是自己
c==>顯示cmds
p==>顯示PID為PID的行程
t==>顯示連結至TTY終端設備的行程
o==>指定格式顯示

pgrep
這個就是ps 搭配grep 拉,用來查詢PID
-l==>顯示行程名稱
-o==>顯示較舊的行程
-n==>顯示較新的行程


監控行程
top
-c==>切換顯示程式名稱或指令名稱,預設顯示程式名稱
-d==>變更更新時間,秒
-i==>切換顯示閒置行程,預設會顯示閒置行程
-u==>指定顯示user行程

沒有留言: