一、程序檢視及其管理工具
………………………………………………………………………………………………………………………
ps指令:報告目前程序的快照資訊
ps - report a snapshot of the current processes.
選項:
-A:顯示所有程序與-e相同的效果
-a:不與終端相關的所有程序
-u:與使用者相關的程序
-x:通常和a,u結合使用,顯示出來比較全面的資訊
-f:做一個更為完整的輸出
常用的組合:
ps -ef 以完整的資訊顯示所有程序資訊
ps -efH 顯示程序層次結構
ps -aux 顯示所有不與終端和與終端相關的程序完整資訊
ps -axo pid,command,psr,pri,ni 自定義顯示其程序号、程序指令、優先級、nice值
指令示範:
1
2
3
4
5
6
7
8
9
10
11
12
<code>[root@centos6 ~]</code><code># ps -ef |head -10</code>
<code>UID PID PPID C STIME TTY TIME CMD</code>
<code>root 1 0 0 Aug19 ? 00:00:05 </code><code>/sbin/init</code>
<code>root 2 0 0 Aug19 ? 00:00:00 [kthreadd]</code>
<code>root 3 2 0 Aug19 ? 00:00:00 [migration</code><code>/0</code><code>]</code>
<code>root 4 2 0 Aug19 ? 00:00:01 [ksoftirqd</code><code>/0</code><code>]</code>
<code>root 5 2 0 Aug19 ? 00:00:00 [stopper</code><code>/0</code><code>]</code>
<code>root 6 2 0 Aug19 ? 00:00:18 [watchdog</code><code>/0</code><code>]</code>
<code>root 7 2 0 Aug19 ? 00:06:04 [events</code><code>/0</code><code>]</code>
<code>root 8 2 0 Aug19 ? 00:00:00 [events</code><code>/0</code><code>]</code>
<code>root 9 2 0 Aug19 ? 00:00:00 [events_long</code><code>/0</code><code>]</code>
<code>[root@centos6 ~]</code><code>#</code>
UID/PID/PPID:表示發起者、程序号、父程序号
C:代表CPU,機關為百分比
STIME:表示程序啟動時間
TTY:登入者的終端位置
TIME:cpu的運作時間
CMD:處罰程序指令
<code>[root@centos6 ~]</code><code># ps aux</code>
<code>USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND</code>
<code>root 1 0.0 0.1 19364 1264 ? Ss Aug19 0:05 </code><code>/sbin/init</code>
<code>root 2 0.0 0.0 0 0 ? S Aug19 0:00 [kthreadd]</code>
<code>root 3 0.0 0.0 0 0 ? S Aug19 0:00 [migration</code><code>/0</code><code>]</code>
<code>root 4 0.0 0.0 0 0 ? S Aug19 0:01 [ksoftirqd</code><code>/0</code><code>]</code>
<code>root 5 0.0 0.0 0 0 ? S Aug19 0:00 [stopper</code><code>/0</code><code>]</code>
<code>root 6 0.0 0.0 0 0 ? S Aug19 0:18 [watchdog</code><code>/0</code><code>]</code>
<code>root 7 0.2 0.0 0 0 ? S Aug19 6:05 [events</code><code>/0</code><code>]</code>
<code>root 8 0.0 0.0 0 0 ? S Aug19 0:00 [events</code><code>/0</code><code>]</code>
USER:程序的發起者 PID:程序号 %CPU:cpu的占用率
%MEM:記憶體的占用率 VSZ:虛拟記憶體集 RSS:實體記憶體集
TTY:終端位置 STAT:程序狀态資訊 START:被觸發的時間
TIME:cpu的使用時間 COMMAND:觸發程序指令
注:STAT的常見狀态:
R:running,運作狀态
S:interruptible sleeping,可終端休眠
D:uninterruptible sleeping,不可終端休眠
T:stop,停止狀态
Z:zombie,僵持狀态
top指令:
top - display Linux tasks:動态顯示linux程序資訊
<a href="http://s2.51cto.com/wyfs02/M02/86/47/wKiom1e6xIXwdL5hAAA77fp6C_c569.png" target="_blank"></a>
top - 17:24:30 up 2 days, 9:45, 3 users, load average: 0.00, 0.01, 0.05
top 目前系統時間 系統啟動到現在時間總長 使用者數 平均負載
Tasks: 364 total, 2 running, 361 sleeping, 1 stopped, 0 zombie
顯示程序總量與個别程式處在什麼樣的狀态:運作 可中斷 不可中斷 僵持狀态、僵死狀态
%Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
顯示CPU的整體負載,具體如下:
us:user space 用于使用空間
sy:system space 核心占用cpu百分比
ni:nice使用者程序空間所改變過優先級的程序占用cpu的百分比
id:idle空閑cpu百分比
wa:wait i/0 等待i/o花費時間
hi:hardware interrupt
si:software interrupt
st:stolen,被虛拟記憶體偷走的百分比
KiB Mem : 1001332 total, 139212 free, 207732 used, 654388 buff/cache
實體記憶體占用使用情況
KiB Swap: 2098172 total, 2097620 free, 552 used. 531424 avail Mem
交換分區的使用情況
上面一行通常為空,隻要在輸入指令時才顯示,在這可輸入的指令有如下:
P:以占據的cpu的百分比大小程序排序
M:以占據的memory大小進行排序
T:以cpu的運作時長進行排序
l:顯示系統負載行
t:是否顯示系統程序摘要資訊及其cpu的負載狀态
1:平均或單獨顯示cpu的負載狀态
m:是否顯示記憶體相關的狀态資訊
q:退出指令
s:修改延長重新整理時間
k:終止指定程序
………………………………………………………………………………………………………………………
top字段詳解:
<a href="http://s1.51cto.com/wyfs02/M01/86/47/wKioL1e62T2Cip78AAAVF76WtQ4158.png" target="_blank"></a>
PID:程序号 USER:程序發起者
PR:程序的優先級,越小越優先 NI:nice值,與priortity有關,越小越早被運作
VIRT:虛拟記憶體集 程序占虛拟記憶體空間 RES:實體記憶體集 程序占實際記憶體空間
SHR:程序與其他程序共享的記憶體大小, S:程序的狀态資訊
%CPU:cpu的使用百分比 %MEM:記憶體的使用百分比
TIME+:cpu的使用時間的總時長 COMMAND:程序相關指令
htop指令:内部程序檢視器
htop - interactive process viewer
<a href="http://s2.51cto.com/wyfs02/M00/86/48/wKiom1e63gbTPlTcAABrL6WppSc691.png" target="_blank"></a>
u:顯示指定使用者的程序
l:顯示光标所在程序所打開的檔案清單
s:顯示光标所在程序執行的系統調用
a:綁定程序到指定的cpu
#:快速定位光标之pid為#号的程序上
htop支援的選項:
-d:延長時長
-u USERNAME:僅顯示指定使用者的程序
-s COLUMN:根據指定的字段進行排序
二、Linux程序及作業管理
1、程序管理
所謂的程序管理就是向程序發送一些控制信号,來完成對程序的管理控制,可通過kill指令來顯示目前系統可用的信号,以及向程序發送信号指定。
kill -l:顯示目前系統可用的信号
<a href="http://s3.51cto.com/wyfs02/M00/86/48/wKioL1e64viAswotAAA_pdubdB8813.png" target="_blank"></a>
kill指令:
用于向程序發送信号,以實作對程序的管理
kill - terminate a process
每個信号的辨別方式有三種:
1)信号的數字辨別
2)信号的完整名稱
3)信号的簡寫名稱
向程序發信号:
kill [-s signal|-p] [--] pid...
kill -l [signal]
常見的信号有:
1)SIGHUB #無需關閉程序讓其重讀配置檔案 kill -1 pid
2)SIGINT #終止正在運作的指令 相當于ctrl+c kill -2 pid
9)SIGKILL #強暴的殺死正在運作的程序 kill -9 pid
15)SIGNTERM#安全終止運作中的程序 kill -15 pid
19)SIGSTOP #停止程序
killall指令:killall指令後面接程序名
killall - kill processes by name
2、作業管理
在每個使用者登入系統之後每個工作程序都是目前bash的子程序,此時我們需要對那些進行管理,即将一部分作業放入背景運作,,同時在前台編輯一個配置檔案,在編輯完配置檔案後再将背景的作業任務調回前台運作。
如何将作業運作在背景:
1)ctrl+z
2)command &
<a href="http://s1.51cto.com/wyfs02/M01/86/48/wKioL1e66N_ApQvwAAALy_TFUPg669.png" target="_blank"></a>
作業控制指令:fg bg kill
作業控制指令:
# fg [[%]JOBNUM]: 将指定的作業調回前台
# bg [[%]JOBNUM]: 讓送往背景的作業在背景繼續運作
# kill[%JOBNUM]: 終止指定的作
本文轉自chengong1013 51CTO部落格,原文連結:http://blog.51cto.com/purify/1841222,如需轉載請自行聯系原作者