發新話題
打印

Linux 基礎問答

Linux 基礎問答

1.指令練習?

2.PID 的邏輯是什麼?

什麼是 Process?簡單的說就是在系統中執行的一些程式。

不論是因為系統運行過程所啟動的程式,或是使用者在登入後自行執行的程式、或是常駐執行、或是短暫執行,這些程式在系統中執行時,都會佔用系統的資源(CPU、記憶體等),此時系統就會替程式安排一個程序(Process),以便控管資源的使用!因此,在系統中執行或運作的程式,我們可以稱之為 Process。

誠如上述所言,當程式執行時會產生一個 Process,系統則在此時會配給每個 Process 一個辨識碼,這個辨識碼就是 Process ID 簡稱 PID。而分配的 Process ID 是不會重複的,當程式結束或終止後,PID 就會消失系統也會拋棄不再使用,等到下次重新啟動系統後再從頭計數。

有些程序(Process)在執行時,會呼叫或啟用其它的程序,這些被呼叫的程序可稱為子程序,而最先被執行的程序就被當成父程序(Parent Process)。子程序也有一個 PID,同時也會註記父程序的 PID,稱之為 PPID。整個系統最初的父程序是 init 這支程式,不論程序呼叫了幾層的子程序,往前推算最終還是到了 init 這個程式所產生的程序,而 init 程序的 PID 為 0。


方法一
PS 指令

上述的 Process 在系統運作過程當中,可以透過指令來進行管理。「ps」指令是最常用的 Processes 管理指令,當您直接在提示字元後輸入 ps 按下 Enter 按鍵,畫面很簡單的呈現出您目前使用的 SHELL 與下達 ps 指令的 Process:
複製內容到剪貼板
代碼:
#ps -aux
欄位說明
複製內容到剪貼板
代碼:
F        指示程序位置的標記
UID      執行程式的帳號身分
PID      Process ID
PPID     父程序的 PID
PRI      優先值
NI       NICE 值
VSZ      佔用的虛擬記憶體大小
RSS      佔用的記憶體大小
WCHAN    行程的核心功能
STAT     該程序的狀態
      D: 不可中斷的靜止
      R: 正在執行中
      S: 靜止狀態
      T: 暫停執行
      Z: 程序不存在但暫時無法消除
      W: 沒有足夠的記憶體分頁可分配
      <: 高優先序的程序
      N: 低優先序的程序
      L: 程序使用記憶體分頁分配並鎖在記憶體內
TTY      從那個終端機執行
TIME     執行的時間
COMMAND  執行的命令或程式
以下將常用參數列出供大家參考:
複製內容到剪貼板
代碼:
A     選擇所有的 Processes 顯示
a     選擇從該終端機上執行的 Process
u     以執行身分帳戶為導向顯示
x     顯示包含那些沒有控制終端機的所有程序
l     以長格式顯示
U     只顯示以參數後面所指定的帳戶執行的 Process
方法二
top 指令(動態)

「top」指令事實上是一個工具指令,可以即使的顯示 Process 的資訊:

top 是即時的顯示,您可以在執行指令時加上 -d 10 的參數,讓 top 可以每 10 秒中更新一次畫面(位加參數則預設值為 5 秒鐘)。其他參數說明如下:
複製內容到剪貼板
代碼:
c     指令名稱的欄位顯示完整指令列
p PID 只監看參數後所加的 PID 程序
d SEC 設定畫面上資料更新的時間(SEC為指定更新的秒數)
i     不顯示暫停(idel)與殭屍(zombie)程序
q     隨時更新資料
s     安全模式,關閉部份top指令的功能
S     顯示每一個行程的總CPU時間

TOP

發新話題