一、程序概念
運作中的程式的一個副本,是被載入記憶體的一個指令集合 程序ID(Process ID,PID)号碼被用來标記各個程序UID、GID、和SELinux語境決定對檔案系統的存取和通路權限,通常從執行程序的使用者來繼承 存在生命周期。
二、程序狀态
1)運作狀态:running
2)就緒狀态:ready
3)睡眠可中斷
4)睡眠不可中斷
5)停止狀态 stopped 6)僵死狀态 zombie
三、程序管理指令
Linux系統狀态的檢視及管理工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup
Linux系統各程序的相關資訊均儲存在/proc/PID目錄下 的各檔案中
pstree指令:
pstree - display a tree of processes
ps指令:
ps - report a snapshot of the current processes
ps [OPTION]...
-e:顯示所有程序和-a等同
-a:顯示所有程序和-e等同
-f:選項顯示其程序的父程序
-u:選項顯示所有者資訊
-x:包括不連結終端的程序
-o:指定屬性進行顯示:pid,comm,%cpu,%mem,state,tty,euser(effective user),ruser(real user)
VSZ:Virtual Memory Size,虛拟記憶體集
RSS:常駐記憶體集(實體記憶體集)
stat狀态:
R:running
S:interruptable sleeping
D:uninterruptable sleeping
T:stopped
Z:zombie
常用組合:-ef
-e: 顯示所有程序
-f: 顯示完整格式程式資訊
常用組合:-eFH
-F: 顯示更完整格式的程序資訊
-H: 以程序層級格式顯示程序相關資訊
常用組合:自定義 -eo pid,tid,class,rtprio,ni,pri,psr, pcpu,stat,comm axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid, pid,pcpu,comm
ni:nice值 pri:priority,優先級 psr:processor,cpu編号
rtprio:實時優先級
pgrep指令:
pgrep [options] pattern
選項:
-u:uid,程序的生效者
-U:real user,真正發起運作指令者
-t:terminal,與終端相關的程序
-l: 顯示程序名
-a:顯示完整格式的程序名
-P:pid,顯示指定程序的子程序
按确切的程式名稱:/sbin/pidof pidof bash
三、程序管理工具
top:
htop:
欄目資訊:
us:user
space:使用者空間
sy:核心空間
ni:nice值
wa:等待I0時間
id:空閑
hi:硬中斷
si:軟中斷
st: stolen 虛拟機偷走的時間
程序相關參數說明:
PID:任務的程序号
PPID:程序的父程序的程序号
RUSER:程序的所有者
EUSER:程序的生效使用者
TTY:終端
PR:優先級
%CPU:CPU的占有率
%MEM:記憶體的占有率
S:程序狀态
TIME+:CPU工作時間
top:有許多程序内置指令
1)排序
P:以占據的cpu的百分比,%cpu
M:占據記憶體的百分比,%MEM
T:累積占據cpu時長time
2)首部資訊
uptime資訊:l指令
tasks及cpu資訊:t指令
memory資訊:m指令
3)退出指令:q
修改重新整理時間:s
終止指定程序:k
儲存檔案:W
kill指令:向程序發送程序控制信号,以實作對程序管理。
1)SIGHUB:無需關閉程序,而讓其重讀配置檔案
2)SIGINT: 中止正在運作中的程序
9)SIGKILL: 殺死正在運作的程序
15)SIGTEM: 中止正在運作的程序,讓其運作完,再次殺死
18)SIGCONT: 繼續運作
19)SIGSTOP: 背景休眠
指定信号的方法:
(1) 信号的數字辨別;1, 2, 9
(2) 信号完整名稱;SIGHUP
(3) 信号的簡寫名稱;HUP
殺死程序的方法:
按PID:kill [-SIGNAL] pid...
按名稱:killall [-SIGNAL] COMM
按模式:pkill [options] pattern
-SIGNAL
-u uid:effective user 生效者
-t:terminal:與指定終端相關的程序
-l:顯示程序名
-a:顯示完整格式的程序名
-P:pid 顯示父程序為此處指定的程序的 程序清單
來源:馬哥教育
官方微信:magedu-linux