程序管理類的指令:
pstree,ps,top,vmstat,htop,pmap
pstree:檢視程序樹
ps:顯示系統目前程序狀态的指令
程序:
跟終端相關的程序
跟終端無關的程序
a:所有跟終端相關的程序
ps a
x:所有跟終端無關的程序
ps x
STAT:
S:可中斷睡眠
D:不可中斷睡眠
R:運作或可運作
T:停止
Z:僵死
s:session leader
l:多線程程序
+:前台程序:
N:低優先級程序
<:高優先級程序
COMMAND:由哪個指令發起的程序
[]:核心線程
u:以使用者為中心顯示程序相關資訊
ps u
%CPU:cputime/realtime
%MEM:占用記憶體百分比
VSZ:Virtual memory Size 虛拟記憶體集,虛拟位址空間大小
RSS:實際記憶體,非可交換記憶體,常駐記憶體集
START:啟動時間
-ef:
ps -ef
-e:顯示所有程序
-f:完整格式清單
-eFH:
ps -eFH
-F:顯示額外資訊
-H:顯示程序層次關系
PSR:運作在哪個CPU上,CPU編号:0,1,2,3
-o 要顯示的字段:自定義顯示格式
ps -o pid,command
ps axo pid,command
pgrep pattern:
例:pgrep bash
選項;
-U USERNAME:顯示相關使用者的程序
-G GROUPNAME:顯示相關組的程序
pidof:找到某一個程序的ID号
top
M:按記憶體空間占用大小排序
P:按CPU使用大小排序
T:按累計時間排序
k:殺死一個程序
m:是否顯示記憶體摘要資訊
t:是否顯示CPU和程序的統計資訊
l:是否顯示負載資訊
q:退出
選項:
-d N:重新整理延遲
-b:批次顯示
-n N:指定批次顯示時顯示的批數
vmstat:
vmstat 1:每秒重新整理一次
procs
r:運作或等待CPU時間片的程序個數
b:被阻塞(通常為等待IO完成)的程序隊列的長度
memory
swpd:從實體記憶體交換至交換分區的資料量
free:從未使用的實體記憶體空間
buff:buffer cache的空間大小:通常是緩存寫操作相關的資料
cache:page cache的空間大小:通常是緩存讀操作相關的資料
swap:
si:swap in:資料進入交換分區中的資料量,即從記憶體至交換分區中去
so:swap out:資料離開交換分區中的資料量,即從交換分區子記憶體
io:
bi:block in:從塊裝置讀入的資料量(kb/s)
bo:block out:儲存至塊裝置的資料量(kb/s)
system:
in:interrupt:中斷發生的速率,通常為每秒多少次中斷請求發生
cs:context switch:上下文切換的速率
cpu:
us:使用者程序所占用CPU時間的百分比
sy:核心
id:CPU空閑百分比
wa:CPU用于等待IO完成的時間百分比
st:被虛拟化占去的時間百分比
sar
-u:顯示CPU的控制資訊
-P:-P指定CPU
sar -P ALL:顯示所有CPU的控制資訊 sar -P 0:顯示0号CPU的控制資訊
iostat -c:顯示CPU的平均使用率
dstat -c:顯示CPU的資訊
dstat -C 0,3:顯示0号和3号CPU的資訊
程序間通信:IPC
共享記憶體,shm
信号:signal
信号:
1、SIGHUP,讓程序不用終止,而重讀其配置檔案
2、SIGINT,中斷正在運作的程序,相當于Ctrl+c
9、SIGKILL,殺死一個程序
15、SIGTERM,終止一個程序
19、SIGSTOP,停止一個程序
18、SIGCONT,繼續一個程序
向其它程序傳遞信号,使用kill
kill -信号 PID 每次程序啟用後PID會不一樣
kill -SIGKILL 2031或kill -9 2031
killall -信号 程序名
killall -SIGKILL gnome:殺死gnome相關的所有程序
killall5:殺死所有程序
kill -l:列出所有可以使用kill的信号
調整程序nice值:
普通使用者:調大數字,調低優先級
隻有管理者可以調小數字,調高優先級
-20,19
100,139
nice -n N COMMAND:調整程序的nice值調整為N 一個程序還沒有啟動,需要手動啟動它,隻需要指定nice,并指定其nice值為N,這樣這個指令就工作在這個nice值N下了
renice N PID:把PID為這個号碼的程序的nice值重新調整為其它nice值N
Linux作業控制:
前台:占用着終端:前台作業
背景:無須占用終端
jobs:檢視目前作業
前台-->背景:Ctrl+z 送到背景後不會運作
# vim /tmp/test.txt
hello world
Ctrl+z
背景-->前台:fg [[%]JOB_ID] []表示可省
bg [[%]JOB_ID]:讓其在背景運作
啟動時,讓作業直接運作于背景:
COMMAND &
nohup COMMAND & 使指令于終端無關,即終端關閉後指令還能運作
jobs 檢視
作業也可以被終止
kill %JOB_ID
axel -n 5 -o /mnt/Soft/down http://a.b.c.d/abc.iso & 在背景下載下傳
nohup axel -n 5 -o /mnt/Soft/down http://a.b.c.d/abc.iso & 終端關閉後還能下載下傳
screen:在一個終端上打開多個螢幕
screen
Ctrl A松開,再按D鍵:從目前screen螢幕離開,即其自己去背景運作
screen -ls:檢視有幾個screen在運作
screen -r SCREEN_ID:調出screen螢幕
screen -r 3700
exit:關閉screen