一、程序概念
運作中的程式的一個副本,是被載入記憶體的一個指令集合 程序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:
<a href="http://s2.51cto.com/wyfs02/M00/86/ED/wKiom1fO2QviW4wrAABChRi3t-E626.png" target="_blank"></a>
htop:
<a href="http://s4.51cto.com/wyfs02/M01/86/F8/wKioL1fQCMjgoP2XAACVOe9-5t0167.png" target="_blank"></a>
欄目資訊: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 顯示父程序為此處指定的程序的 程序清單
作業管理:
linux的作業控制:
1)前台作業:通過終端啟動,且啟動後一直占據終端
2)背景作業:可通過終端啟動,但啟動後即轉入背景運作
3)讓作業運作在背景:ctrl+z command &
4)背景作業雖然被送往背景運作,但其依然與終端相關;退出終端,将關閉 背景作業。如果希望送往背景後,剝離與終端的關系 #screen;command 或者#nohup command &
5)檢視所有作業:jobs
6) 作業控制:
fg:把指定的背景作業調回前台 如:fg 1
bg:讓送往後天的作業在背景繼續運作 如:bg 1
kill:終止指定的程序
示範:
<a href="http://s4.51cto.com/wyfs02/M01/86/FB/wKiom1fQDQnhdHpKAABSYp_1_Ck569.png" target="_blank"></a>
本文轉自chengong1013 51CTO部落格,原文連結:http://blog.51cto.com/purify/1847456,如需轉載請自行聯系原作者