本小節介紹
1、進程的描述
2、用戶怎么樣管理進程
3、進程管理的命令
進程的概念
內核的功能:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等。
Process:運行中的程序的一個副本,是被載入內存的一個指令集合;
進程ID(ProcessID ,PID)號碼被用來標記各個進程;
UID,GID,和SELINUX語境決定對文件系統的存取和訪問權限,通常從執行進程的用戶來繼承;
存在生命周期。
進程創建: init:第一個進程 父子關系
進程ID(PID):進程開始后指派給此進程的唯一標識符。
父進程ID(PPID):創建了當前進程的父進程的PID
進程狀態:
Linux內核:搶占式多任務
進程類型:
守護進程: daemon,在系統引導過程中啟動的進程,和終端無關進程
前臺進程:跟終端相關,通過終端啟動的進程
注意:兩者可相互轉化
進程狀態:
運行態:running
就緒態:ready
睡眠態:
可中斷:interruptable
不可中斷:uninterruptable
停止態:stopped,暫停于內存,但不會被調度,除非手動啟動
僵死態:zombie,結束進程,父進程結束前,子進程不關閉
系統管理工具
進程的分類:
CPU-Bound:CPU密集型,非交互
IO-Bound:IO密集型,交互
Linux系統狀態的查看及管理工具:pstree,ps,pidof,pgrep,top, htop,glance,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup
為了管理這些進程,用戶應該能夠:
查看所有運行中的進程
查看進程消耗資源
定位個別進程并且對其執行制定操作
改變進程的優先級
殺死指定進程
限制進程可用的系統資源等
下面來詳細說明執行上述進程管理的命令:
pstree命令:顯示進程樹的結構(pstree – display a tree of processes)。
linux中,每一個進程都是由其父進程創建的。此命令以可視化方式顯示進程,通過顯示進程的樹狀圖來展示進程間關系。
如果指定了pid了,那么 樹 的根是該pid,不然將會是init(pid: 1)如下圖:
查看進程ps
ps:process stat 進程狀態,
ps – report a snapshot of the current processes
Linux系統各進程的相關信息均保存在/proc/PID目錄下的各文件中。
ps [OPTION]
支持三種選項:
UNIX選項 如: -A -e
BSD選項 如: a
GNU選項 如–help
選項:默認顯示當前終端中的進程
a 選項包括所有終端中的進程
x 選項包括不鏈接終端的進程
u 選項顯示進程所有者的信息
f 選項顯示進程的父進程
k | –sort 對屬性排序
o 屬性…選項顯示定制的信息
pid ;cmd; %cpu ;%mem ;state ;tty ;euser; ruser(進程真正的發起者)
-e: 顯示所有進程
-f: 顯示完整格式程序信息
-E:顯示更完整格式的進程信息
-H:以進程層級格式顯示進程相關信息
常用選項組合:
#ps -a 列出所有運行中的進程
#ps -ef | grep 可以配合grep正則表達式列出需要的進程
#ps -C f1.sh 單獨顯示進程
#ps -aux 顯示進程信息,包括無終端的(x) 和針對用戶(u)的進程:如USER, PID, %CPU, %MEM等,如下圖;
上圖中: VSZ: Virtual memory SiZe,虛擬內存集,線性內存
RSS: ReSident Size, 常駐內存集
STAT:進程狀態
R:running S: interruptable sleeping
D: uninterruptable sleeping T: stopped
Z: zombie +: 前臺進程
l: 多線程進程 L:內存分頁并帶鎖
N:低優先級進程 <: 高優先級進程
s: session leader,會話(子進程)發起者
#ps axo pid ,cmd,%cpu 顯示進程定制的信息;如下圖;
進程優先級
進程優先級調整:
靜態優先級:100-139
進程默認啟動時的nice值為0,優先級為120;
只有根用戶才能降低nice值(提高優先性)
nice命令: nice [OPTION] [COMMAND [ARG]…]
#nice -n 3 top 指定進程的優先級,如下圖:
renice命令類似nice命令。
使用這個命令可以改變正在運行的進程優先值。注意,用戶只能改變屬于他們自己的進程的優先 值。
- #renice –n –p –改變指定進程的優先值
-
上圖中初始優先值為0的2121號進程優先值變成了4
搜索進程
最靈活:ps 選項 | grep
按預定義的模式:pgrep
pgrep [options] pattern
-u uid: effective user,生效者
-U uid: real user,真正發起運行命令者
-t terminal: 與指定終端相關的進程
-l: 顯示進程名
-a: 顯示完整格式的進程名
-P pid: 顯示指定進程的子進程
示例:
#pgrep -aU wang 查看真正發起運行命令者的進程
#pgrep -at tty2 查看終端上運行的進程
按確切的程序名稱:/sbin/pidof
#pidof bash 顯示運行進程的進程編號
系統工具
uptime
顯示當前時間,系統已啟動的時間、當前上線人數,系統平均負載(1、5、10分鐘的平均負載,一般不會超過1)
系統平均負載: 指在特定時間間隔內運行隊列中的平均進程數 ;
通常每個CPU內核的當前活動進程數不大于3,那么系統 的性能良好。
如果每個CPU內核的任務數大于5,那么此主機的性能有嚴重問題。
如果linux主機是1個雙核CPU,當Load Average 為6的時候說明機器已經被充分使用。
top工具:
top:有許多內置命令:
排序: P:以占據的CPU百分比,%CPU
M:占據內存百分比,%MEM
T:累積占據CPU時長,TIME+
首部信息顯示:
uptime信息:l命令
tasks及cpu信息:t命令
cpu分別顯示:1 (數字)
memory信息:m命令
退出命令:q
修改刷新時間間隔:s
終止指定進程:k
存文件:W
欄位信息簡介
us:用戶空間 sy:內核空間 ni:調整nice時間 id:空閑
wa:等待IO時間 hi:硬中斷 si:軟中斷(模式切換)
st:虛擬機偷走的時間
選項: -d #: 指定刷新時間間隔,默認為3秒
-b: 全部顯示所有進程
-n #: 刷新多少次后退出
#top -b -d 10 指定10秒刷新一次
#top -n 3指定刷新3次
htop命令:需從Fedora-EPEL源安裝 http://172.16.0.1/fedora-epel/7/x86_64
選項: -d #: 指定延遲時間; -u UserName: 僅顯示指定用戶的進程
-s COLUME: 以指定字段進行排序
子命令:
s: 跟蹤選定進程的系統調用
l: 顯示選定進程打開的文件列表
a:將選定的進程綁定至某指定CPU核心
t: 顯示進程樹
殺進程:
kill命令:向進程發送控制信號,以實現對進程管理,每個信號對應一個數字,
信號名稱以SIG開頭,不區分大小寫
顯示當前系統可用信號:kill -l ,trap -l
常用信號:man 7 signal
1) SIGHUP: 無須關閉進程而讓其重讀配置文件
2) SIGINT: 中止正在運行的進程;相當于Ctrl+c
3) SIGQUIT:相當于ctrl+\
9) SIGKILL: 強制殺死正在運行的進程
15) SIGTERM:終止正在運行的進程
18) SIGCONT:繼續運行
19) SIGSTOP:后臺休眠
指定信號的方法:
(1) 信號的數字標識:1, 2, 9
(2) 信號完整名稱:SIGHUP
(3) 信號的簡寫名稱:HUP
按PID:kill [-SIGNAL] pid …
kill –n SIGNAL pid;kill –s SIGNAL pid
按名稱:killall [-SIGNAL] comm…
按模式:pkill [options] pattern
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正發起運行命令者
-t terminal: 與指定終端相關的進程
-l: 顯示進程名(pgrep可用)
-a: 顯示完整格式的進程名(pgrep可用)
-P pid: 顯示指定進程的子進程
#pkill -t pts/3 -9
作業管理
LINUX的作業控制
前臺作業:通過終端啟動,且啟動后一直占據終端;
后臺作業:可通過終端啟動,但啟動后即轉入后臺運行,釋放終端讓作業運行于后臺
(1)運行中的作業:ctrl+z
(2) 尚未啟動的作業:#COMMAND &
后臺作業雖然被送往后臺運行,但其依然與終端相關;
退出終端,將關閉后臺作業。如果希望送往后臺后,剝離與終端關系
#nohup CMD & #screen;CMD
查看當前終端所有作業:#jobs
作業控制:
#fg :把指的后臺作業調回前臺
#bg :讓送往后臺的作業在后臺繼續運行
#kill : 終止指定的作業
并行運行
同時運行多個進程,體改效率
方法1: vi all.sh
f1.sh& f2.sh& f3.sh&
方法2:
(f1.sh&);(f2.sh&);(f3.sh&)
方法3;
{ fi.sh& f2.sh& f3.sh& }
原創文章,作者:shenjialong,如若轉載,請注明出處:http://www.www58058.com/79278