1、Process: 運行中的程序的一個副本,是被載入內存的一個指令集合
進程ID(Process ID,PID)號碼被用來標記各個進程
UID、GID、和SELinux語境決定對文件系統的存取和訪問權限,
通常從執行進程的用戶來繼承
存在生命周期
Uninterruptible sleep: 不可中斷的睡眠
Interruptible sleep:可中斷睡眠
2、進程優先級:
系統優先級:數字越小,優先級越高
0-139(CentOS5)
各有140個運行隊列和過期隊列
0-98,99(CentOS6)
實時優先級:99-0 值最大優先級最高
nice值:-20到19,對應系統優先級100-139或99
100-139:用戶可控制
0-99:內核調整的
3、ps: Process State
a: 所有與終端有關的進程
x: 所有與終端無關的進程
進程的分類:
跟終端相關的進程
跟終端無關的進程
守護進程: daemon,在系統引導過程中啟動的進程,和終端無關進程
前臺進程:跟終端相關,通過終端啟動的進程
進程狀態:
運行態:running
就緒態:ready
睡眠態:
可中斷:interruptable
不可中斷:uninterruptable
停止態:stopped,暫停于內存,但不會被調度,除非手動啟動
僵死態:zombie,結束進程,父進程結束前,子進程不關閉
D:不可中斷的睡眠
R:運行或就緒
S:可中斷的睡眠
T:停止
Z:僵死
<:高優先級進程
N: 低優先級進程
+:前臺進程組中的進程
l: 多線程進程
s: 會話進程首進程
ps -elF |-ef |-eF
ps -o PROPERTY1,PROPERTY2
ps -o pid,comm,ni
pstree: 顯示當前系統上的進程樹
pgrep:
pidof: 根據程序名稱,查找其相關進程的ID號
top:
M: 根據駐留內存大小進行排序
P:根據CPU使用百分比進行排序
T: 根據累計時間進行排序
4、進程間通信(IPC: Inter Process Communication)
重要的信號:
1:SIGHUP: 讓一個進程不用重啟,就可以重讀其配置文件,并讓新的配置信息生效;
2: SIGINT:Ctrl+c: 中斷一個進程
9: SIGKILL:殺死一個進程
15: SIGTERM:終止一個進程, 默認信號
指定一個信號:
信號號碼:kill -1
信號名稱:kill -SIGKILL
信號名稱簡寫:kill -KILL
kill PID
killall COMMAND
5、調整nice值:
調整已經啟動的進程的nice值:
renice NI PID
在啟動時指定nice值:
nice -n NI COMMAND
6、前臺作業:占據了命令提示符
后臺作業:啟動之后,釋放命令提示符,后續的操作在后臺完成
前臺–>后臺:
Ctrl+z: 把正在前臺的作業送往后臺
COMMAND &:讓命令在后臺執行
bg: 讓后臺的停止作業繼續運行
bg [[%]JOBID]
7、jobs: 查看后臺的所有作業
作業號,不同于進程號
+:命令將默認操作的作業
–:命令將第二個默認操作的作業
fg: 將后臺的作業調回前臺
fg [[%]JOBID]
kill %JOBID: 終止某作業
vmstat:系統狀態查看命令
uptime
/proc/meminfo
8、Linux任務計劃、周期性任務執行
未來的某時間點執行一次任務
at
batch:系統自行選擇空閑時間去執行此處指定的任務
周期性運行某任務
Cron
at命令:at [option] TIME
v常用選項:
-V 顯示版本信息:
-l: 列出指定隊列中等待運行的作業;相當于atq
-d: 刪除指定的作業;相當于atrm
-c: 查看具體作業任務
-f /path/from/somefile:從指定的文件中讀取任務
-m:當任務被完成之后,將給用戶發送郵件,即使沒有標準輸出
v注意:作業執行命令的結果中的標準輸出和錯誤以郵件通知給相關用戶
vTIME:定義出什么時候進行at 這項任務的時間
HH:MM [YYYY-mm-dd]
noon, midnight, teatime(4pm)
tomorrow
now+#{minutes,hours,days, OR weeks}
白名單:/etc/at.allow默認不存在,只有該文件中的用戶才能執行at命令
黑名單:/etc/at.deny默認存在,拒絕該文件中用戶執行at命令,而沒有在at.deny文件中的使用者則可執行
如果兩個文件都不存在,只有root 可以執行at 命令
原創文章,作者:cui,如若轉載,請注明出處:http://www.www58058.com/85543