進程管理
一、進程
1. 進程概念
進程是一個具有一定獨立功能的程序,在一個數據集上的一次動態執行的過程。進程是操作系統進行資源分配和調度的一個獨立單位,是應用程序運行的載體。進程一般由程序,數據和進程控制塊三部分組成。
- 程序用於描述進程要完成的功能,是控制進程執行的指令集;
- 數據是程序在執行時所需要的數據和工作區;
- 程序控制塊包含進程的描述信息和控制信息是進程存在的唯一標誌。
二、進程查看
1. ps與pstree
ps命令用來查看當前進程的快照信息
用法:ps [ 選項 ]
-u 以用戶爲中心組織進程狀態信息顯示
-a 與終端相關的進程
-x 與終端無關的進程
-e 顯示所有進程
-f 顯示完整格式程序信息
ps -aux
輸出格式說明
字段 | 描述 |
---|---|
USER | 用戶名 |
%CPU | 進程佔用的CPU百分比 |
%MEM | 佔用內存的百分比 |
VSZ | 該進程使用的虛擬內存量(KB) |
RSS | 該進程佔用的固定內存量(KB)(駐留中頁的數量) |
STAT | 進程的狀態 |
START | 該進程被觸發啓動時間 |
TIME | 該進程實際使用CPU運行的時間 |
狀態碼說明
狀態碼 | 描述 |
---|---|
D | 無法中斷的休眠狀態(通常 IO 的進程); |
R | 正在運行可中在隊列中可過行的; |
S | 處於休眠狀態; |
T | 停止或被追蹤; |
W | 進入內存交換 (從內核2.6開始無效); |
X | 死掉的進程 (基本很少見); |
Z | 殭屍進程; |
< | 優先級高的進程 |
N | 優先級較低的進程 |
L | 有些頁被鎖進內存; |
s | 進程的領導者(在它之下有子進程); |
l | 多線程,克隆線程(使用 CLONE_THREAD, 類似 NPTL pthreads); |
+ | 位於後臺的進程組; |
ps -ef
輸出格式說明
字段 | 說明 |
---|---|
UID | 用戶ID、但輸出的是用戶名 |
PID | 進程的ID |
PPID | 父進程ID |
C | 進程佔用CPU的百分比 |
STIME | 進程啓動到現在的時間 |
TTY | 該進程在那個終端上運行,若與終端無關,則顯示? 若爲pts/0等,則表示由網絡連接主機進程 |
CMD | 命令的名稱和參數 |
pstree命令以樹形結構顯示當前進程信息
-a 顯示每個程序的完整指令,包含路徑,參數或是常駐服務的標示
-h 列出樹狀圖時,特別標明現在執行的程序
-n 用程序識別碼排序。預設是以程序名稱來排序
-p 顯示程序識別碼
2. top與htop
top命令實時顯示進程CPU利用率
htop命令交互式實時顯示進程信息
3. netstat
- 查看網卡列表
netstat -i - 查看路由表
netstat -rn - 查看端口
netstat -tunlp
-t 僅顯示tcp相關選項
-u 僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示建立相關鏈接的程序名