顯示其他用戶啟動(dòng)的進(jìn)程(a)
查看系統(tǒng)中屬于自己的進(jìn)程(x)
啟動(dòng)這個(gè)進(jìn)程的用戶和它啟動(dòng)的時(shí)間(u)
使用“date -s”命令來(lái)修改系統(tǒng)時(shí)間
比如將系統(tǒng)時(shí)間設(shè)定成1996年6月10日的命令如下溯饵。
date -s 06/10/96
將系統(tǒng)時(shí)間設(shè)定成下午1點(diǎn)12分0秒的命令如下丰刊。
date -s 13:12:00
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1340 440 ? S Nov05 0:04 init
root 2 0.0 0.0 0 0 ? SW Nov05 0:00 [keventd]
root 3 0.0 0.0 0 0 ? SW Nov05 0:00 [keventd]
...
USER域指明了是哪個(gè)用戶啟動(dòng)了這個(gè)命令;
用戶可以查看某個(gè)進(jìn)程占用了多少CPU;
內(nèi)存使用及其VSZ(虛擬內(nèi)存大小)和RSS(常駐集大姓普ぁ):
VSZ表示如果一個(gè)程序完全駐留在內(nèi)存的話需要占用多少內(nèi)存空間;
RSS指明了當(dāng)前實(shí)際占用了多少內(nèi)存;
STAT顯示了進(jìn)程當(dāng)前的狀態(tài):
"S":進(jìn)程處在睡眠狀態(tài),表明這些進(jìn)程在等待某些事件發(fā)生--可能是用戶輸入或者系統(tǒng)資源的可用性;
last命令可以有效的查看系統(tǒng)登錄事件
在一個(gè)進(jìn)程調(diào)用了exit之后猾封,該進(jìn)程并非馬上就消失掉晌缘,而是留下一個(gè)稱為僵尸進(jìn)程(Zombie)的數(shù)據(jù)結(jié)構(gòu)选酗。在Linux進(jìn)程的5種狀態(tài)中芒填,僵尸進(jìn)程是非常特殊的一種氢烘,它已經(jīng)放棄了幾乎所有內(nèi)存空間,沒有任何可執(zhí)行代碼椎工,也不能被調(diào)度,僅僅在進(jìn)程列表中保留一個(gè)位置果覆,記載該進(jìn)程的退出狀態(tài)等信息供其他進(jìn)程收集殖熟,除此之外,僵尸進(jìn)程不再占有任何內(nèi)存空間钳榨。
系統(tǒng)調(diào)用exit的作用是使進(jìn)程退出,但也僅僅限于將一個(gè)正常的進(jìn)程變成一個(gè)僵尸進(jìn)程赏陵,并不能將其完全銷毀饼齿。
進(jìn)程一旦調(diào)用了wait,就立即阻塞自己蝙搔,由wait自動(dòng)分析是否當(dāng)前進(jìn)程的某個(gè)子進(jìn)程已經(jīng)退出缕溉,如果讓它找到了這樣一個(gè)已經(jīng)變成僵尸的子進(jìn)程,wait 就會(huì)收集這個(gè)子進(jìn)程的信息吃型,并把它徹底銷毀后返回证鸥;如果沒有找到這樣一個(gè)子進(jìn)程,wait就會(huì)一直阻塞在這里败玉,直到有一個(gè)出現(xiàn)為止敌土。
轉(zhuǎn)載 ps aux 中STAT 解釋 收藏
運(yùn)行 ps aux 的到如下信息:
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
smmsp 3521 0.0 0.7 6556 1616 ? Ss 20:40 0:00 sendmail: Queue runner@01:00:00 f
root 3532 0.0 0.2 2428 452 ? Ss 20:40 0:00 gpm -m /dev/input/mice -t imps2
htt 3563 0.0 0.0 2956 196 ? Ss 20:41 0:00 /usr/sbin/htt -retryonerror 0
htt 3564 0.0 1.7 29460 3704 ? Sl 20:41 0:00 htt_server -nodaemon
root 3574 0.0 0.4 5236 992 ? Ss 20:41 0:00 crond
xfs 3617 0.0 1.3 13572 2804 ? Ss 20:41 0:00 xfs -droppriv -daemon
root 3627 0.0 0.2 3448 552 ? SNs 20:41 0:00 anacron -s
root 3636 0.0 0.1 2304 420 ? Ss 20:41 0:00 /usr/sbin/atd
dbus 3655 0.0 0.5 13840 1084 ? Ssl 20:41 0:00 dbus-daemon-1 --system
....................................
stat 中的參數(shù)意義如下:
D 不可中斷 Uninterruptible(usually IO)
R 正在運(yùn)行,或在隊(duì)列中的進(jìn)程
S 處于休眠狀態(tài)
T 停止或被追蹤
Z 僵尸進(jìn)程
W 進(jìn)入內(nèi)存交換(從內(nèi)核2.6開始無(wú)效)
X 死掉的進(jìn)程
< 高優(yōu)先級(jí)
n 低優(yōu)先級(jí)
s 包含子進(jìn)程
+ 位于后臺(tái)的進(jìn)程組
======================================
ps命令
要對(duì)進(jìn)程進(jìn)行監(jiān)測(cè)和控制,首先必須要了解當(dāng)前進(jìn)程的情況,也就是需要查看當(dāng)前進(jìn)程,而ps命令就是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令.使用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束矩欠、進(jìn)程有沒有僵尸乳蓄、哪些進(jìn)程占用了過多的資源等等.總之大部分信息都是可以通過執(zhí)行該命令得到的.
ps命令最常用的還是用于監(jiān)控后臺(tái)進(jìn)程的工作情況,因?yàn)楹笈_(tái)進(jìn)程是不和屏幕鍵盤這些標(biāo)準(zhǔn)輸入/輸出設(shè)備進(jìn)行通信的,所以如果需要檢測(cè)其情況,便可以使用ps命令了.
1)ps a 顯示現(xiàn)行終端機(jī)下的所有程序美侦,包括其他用戶的程序耻煤。
2)ps -A 顯示所有程序。
3)ps c 列出程序時(shí),顯示每個(gè)程序真正的指令名稱,而不包含路徑,參數(shù)或常駐服務(wù)的標(biāo)示汽煮。
4)ps -e 此參數(shù)的效果和指定"A"參數(shù)相同鞋囊。
5)ps e 列出程序時(shí),顯示每個(gè)程序所使用的環(huán)境變量。
6)ps f 用ASCII字符顯示樹狀結(jié)構(gòu),表達(dá)程序間的相互關(guān)系叉袍。
7)ps -H 顯示樹狀結(jié)構(gòu)棵里,表示程序間的相互關(guān)系。
8)ps -N 顯示所有的程序,除了執(zhí)行ps指令終端機(jī)下的程序之外。
9)ps s 采用程序信號(hào)的格式顯示程序狀況。
10)ps S 列出程序時(shí),包括已中斷的子程序資料。
11)ps -t<終端機(jī)編號(hào)> 指定終端機(jī)編號(hào),并列出屬于該終端機(jī)的程序的狀況海渊。
12)ps u 以用戶為主的格式來(lái)顯示程序狀況讯沈。
13)ps x 顯示所有程序如叼,不以終端機(jī)來(lái)區(qū)分。
最常用的方法是ps -aux,然后再利用一個(gè)管道符號(hào)導(dǎo)向到grep去查找特定的進(jìn)程,然后再對(duì)特定的進(jìn)程進(jìn)行操作评凝。
linux上進(jìn)程有5種狀態(tài):
- 運(yùn)行(正在運(yùn)行或在運(yùn)行隊(duì)列中等待)
- 中斷(休眠中, 受阻, 在等待某個(gè)條件的形成或接受到信號(hào))
- 不可中斷(收到信號(hào)不喚醒和不可運(yùn)行, 進(jìn)程必須等待直到有中斷發(fā)生)
- 僵死(進(jìn)程已終止, 但進(jìn)程描述符存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào)用后釋放)
- 停止(進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號(hào)后停止運(yùn)行運(yùn)行)
ps工具標(biāo)識(shí)進(jìn)程的5種狀態(tài)碼:
D 不可中斷 uninterruptible sleep (usually IO)
R 運(yùn)行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
注: 其它狀態(tài)還包括W(無(wú)駐留頁(yè)), <(高優(yōu)先級(jí)進(jìn)程), N(低優(yōu)先級(jí)進(jìn)程), L(內(nèi)存鎖頁(yè)).
使用ps格式輸出來(lái)查看進(jìn)程狀態(tài):
ps -eo user,stat..,cmd
user 用戶名
uid 用戶號(hào)
pid 進(jìn)程號(hào)
ppid 父進(jìn)程號(hào)
size 內(nèi)存大小, Kbytes字節(jié).
vsize 總虛擬內(nèi)存大小, bytes字節(jié)(包含code+data+stack)
share 總共享頁(yè)數(shù)
nice 進(jìn)程優(yōu)先級(jí)(缺省為0, 最大為-20)
priority(pri) 內(nèi)核調(diào)度優(yōu)先級(jí)
pmem 進(jìn)程分享的物理內(nèi)存數(shù)的百分比
trs 程序執(zhí)行代碼駐留大小
rss 進(jìn)程使用的總物理內(nèi)存數(shù), Kbytes字節(jié)
time 進(jìn)程執(zhí)行起到現(xiàn)在總的CPU暫用時(shí)間
stat 進(jìn)程狀態(tài)
cmd(args) 執(zhí)行命令的簡(jiǎn)單格式
例子:
查看當(dāng)前系統(tǒng)進(jìn)程的uid,pid,stat,pri, 以u(píng)id號(hào)排序.
ps -eo pid,stat,pri,uid –sort uid
查看當(dāng)前系統(tǒng)進(jìn)程的user,pid,stat,rss,args, 以rss排序.
ps -eo user,pid,stat,rss,args –sort rss
名稱:ps
使用權(quán)限:所有使用者
使用方式:ps [options] [--help]
說(shuō)明:顯示瞬間行程 (process) 的動(dòng)態(tài)
參數(shù):
ps 的參數(shù)非常多, 在此僅列出幾個(gè)常用的參數(shù)并大略介紹含義
-A 列出所有的行程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細(xì)的資訊
-aux 顯示所有包含其他使用者的行程
au(x) 輸出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程擁有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的記憶體使用率
VSZ: 占用的虛擬記憶體大小
RSS: 占用的記憶體大小
TTY: 終端的次要裝置號(hào)碼 (minor device number of tty)
STAT: 該行程的狀態(tài):
D: 不可中斷的靜止
R: 正在執(zhí)行中
S: 靜止?fàn)顟B(tài)
T: 暫停執(zhí)行
Z: 不存在但暫時(shí)無(wú)法消除
W: 沒有足夠的記憶體分頁(yè)可分配
<: 高優(yōu)先序的行程
N: 低優(yōu)先序的行程
L: 有記憶體分頁(yè)分配并鎖在記憶體內(nèi)
START: 行程開始時(shí)間
TIME: 執(zhí)行的時(shí)間
COMMAND:所執(zhí)行的指令
范例:
ps
PID TTY TIME CMD
2791 ttyp0 00:00:00 tcsh
3092 ttyp0 00:00:00 ps
% ps -A
PID TTY TIME CMD
1 ? 00:00:03 init
2 ? 00:00:00 kflushd
3 ? 00:00:00 kpiod
4 ? 00:00:00 kswapd
5 ? 00:00:00 mdrecoveryd
.......
% ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
........
要對(duì)進(jìn)程進(jìn)行監(jiān)測(cè)和控制,首先必須要了解當(dāng)前進(jìn)程的情況,也就是需要查看當(dāng)前進(jìn)程廷支,而 ps 命令就是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令施敢。使用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行的狀態(tài)讯榕、進(jìn)程是否結(jié)束谆棺、進(jìn)程有沒有僵死、哪些進(jìn)程占用了過多的資源等等∫缕粒總之大部分信息都是可以通過執(zhí)行該命令得到的。
ps 為我們提供了進(jìn)程的一次性的查看,它所提供的查看結(jié)果并不動(dòng)態(tài)連續(xù)的丘逸;如果想對(duì)進(jìn)程時(shí)間監(jiān)控儒喊,應(yīng)該用 top 工具妻柒。
kill 用于殺死進(jìn)程。
1志衍、ps 的參數(shù)說(shuō)明
ps 提供了很多的選項(xiàng)參數(shù)泣港,常用的有以下幾個(gè):
l 長(zhǎng)格式輸出洋腮;
u 按用戶名和啟動(dòng)時(shí)間的順序來(lái)顯示進(jìn)程;
j 用任務(wù)格式來(lái)顯示進(jìn)程;
f 用樹形格式來(lái)顯示進(jìn)程贬墩;
a 顯示所有用戶的所有進(jìn)程(包括其它用戶);
x 顯示無(wú)控制終端的進(jìn)程官份;
r 顯示運(yùn)行中的進(jìn)程介评;
ww 避免詳細(xì)參數(shù)被截?cái)啵?/p>
我們常用的選項(xiàng)是組合是 aux 或 lax,還有參數(shù) f 的應(yīng)用椅文。
2锨亏、ps aux 或 lax 輸出的解釋
USER 進(jìn)程的屬主器予;
PID 進(jìn)程的ID末融;
PPID 父進(jìn)程巧婶;
%CPU 進(jìn)程占用的CPU百分比吭狡;
%MEM 占用內(nèi)存的百分比登失;
NI 進(jìn)程的NICE值,數(shù)值大挖炬,表示較少占用CPU時(shí)間壁畸;
VSZ 進(jìn)程虛擬大小茅茂;
RSS 駐留中頁(yè)的數(shù)量;
TTY 終端ID
STAT 進(jìn)程狀態(tài)(有以下幾種)
D 無(wú)法中斷的休眠狀態(tài)(通常 IO 的進(jìn)程)太抓;
R 正在運(yùn)行可中在隊(duì)列中可過行的空闲;
S 處于休眠狀態(tài);
T 停止或被追蹤走敌;
W 進(jìn)入內(nèi)存交換(從內(nèi)核2.6開始無(wú)效)碴倾;
X 死掉的進(jìn)程(從來(lái)沒見過);
Z 僵尸進(jìn)程掉丽;
< 優(yōu)先級(jí)高的進(jìn)程
N 優(yōu)先級(jí)較低的進(jìn)程
L 有些頁(yè)被鎖進(jìn)內(nèi)存跌榔;
s 進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程)捶障;
l 多進(jìn)程的(使用 CLONE_THREAD, 類似 NPTL pthreads)僧须;
- 位于后臺(tái)的進(jìn)程組;
WCHAN 正在等待的進(jìn)程資源项炼;
START 啟動(dòng)進(jìn)程的時(shí)間担平;
TIME 進(jìn)程消耗CPU的時(shí)間示绊;
COMMAND 命令的名稱和參數(shù);
3暂论、應(yīng)用舉例
[root@localhost ~]# ps -aux |more
可以用 | 管道和 more 連接起來(lái)分頁(yè)查看面褐。
[root@localhost ~]# ps -aux > ps001.txt
[root@localhost ~]# more ps001.txt
這里是把所有進(jìn)程顯示出來(lái),并輸出到ps001.txt文件取胎,然后再通過more 來(lái)分頁(yè)查看展哭。
4、kill 終止進(jìn)程
有十幾種控制進(jìn)程的方法闻蛀,下面是一些常用的方法:
kill -STOP [pid]
發(fā)送SIGSTOP (17,19,23)停止一個(gè)進(jìn)程匪傍,而并不消滅這個(gè)進(jìn)程。
kill -CONT [pid]
發(fā)送SIGCONT (19,18,25)重新開始一個(gè)停止的進(jìn)程循榆。
kill -KILL [pid]
發(fā)送SIGKILL (9)強(qiáng)迫進(jìn)程立即停止析恢,并且不實(shí)施清理操作。
kill -9 -1
終止你擁有的全部進(jìn)程秧饮。
SIGKILL 和 SIGSTOP 信號(hào)不能被捕捉映挂、封鎖或者忽略,但是盗尸,其它的信號(hào)可以柑船。所以這是你的終極武器。
轉(zhuǎn)載:http://blog.chinaunix.net/uid-15007890-id-106937.html