顯示其他用戶啟動的進程(a)
查看系統(tǒng)中屬于自己的進程(x)
啟動這個進程的用戶和它啟動的時間(u)
使用“date -s”命令來修改系統(tǒng)時間
比如將系統(tǒng)時間設定成1996年6月10日的命令如下流礁。
#date -s 06/10/96
將系統(tǒng)時間設定成下午1點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域指明了是哪個用戶啟動了這個命令;
用戶可以查看某個進程占用了多少CPU;
內(nèi)存使用及其VSZ(虛擬內(nèi)存大锈捎印)和RSS(常駐集大谢鸬恕):
VSZ表示如果一個程序完全駐留在內(nèi)存的話需要占用多少內(nèi)存空間;
RSS指明了當前實際占用了多少內(nèi)存;
STAT顯示了進程當前的狀態(tài):
"S":進程處在睡眠狀態(tài),表明這些進程在等待某些事件發(fā)生--可能是用戶輸入或者系統(tǒng)資源的可用性;
last命令可以有效的查看系統(tǒng)登錄事件
在一個進程調(diào)用了exit之后无埃,該進程并非馬上就消失掉蜒谤,而是留下一個稱為僵尸進程(Zombie)的數(shù)據(jù)結(jié)構(gòu)击费。在Linux進程的5種狀態(tài)中赋兵,僵尸進程是非常特殊的一種笔咽,它已經(jīng)放棄了幾乎所有內(nèi)存空間,沒有任何可執(zhí)行代碼霹期,也不能被調(diào)度叶组,僅僅在進程列表中保留一個位置,記載該進程的退出狀態(tài)等信息供其他進程收集历造,除此之外甩十,僵尸進程不再占有任何內(nèi)存空間。
系統(tǒng)調(diào)用exit的作用是使進程退出吭产,但也僅僅限于將一個正常的進程變成一個僵尸進程侣监,并不能將其完全銷毀。
進程一旦調(diào)用了wait臣淤,就立即阻塞自己橄霉,由wait自動分析是否當前進程的某個子進程已經(jīng)退出,如果讓它找到了這樣一個已經(jīng)變成僵尸的子進程邑蒋,wait 就會收集這個子進程的信息姓蜂,并把它徹底銷毀后返回按厘;如果沒有找到這樣一個子進程,wait就會一直阻塞在這里钱慢,直到有一個出現(xiàn)為止刻剥。
轉(zhuǎn)載? ps aux 中STAT 解釋 收藏
運行 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 正在運行,或在隊列中的進程
S 處于休眠狀態(tài)
T 停止或被追蹤
Z 僵尸進程
W 進入內(nèi)存交換(從內(nèi)核2.6開始無效)
X? 死掉的進程
< 高優(yōu)先級
n? 低優(yōu)先級
s? 包含子進程
+? 位于后臺的進程組
======================================
ps命令
要對進程進行監(jiān)測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而ps命令就是最基本同時也是非常強大的進程查看命令.使用該命令可以確定有哪些進程正在運行和運行的狀態(tài)滩字、進程是否結(jié)束造虏、進程有沒有僵尸、哪些進程占用了過多的資源等等.總之大部分信息都是可以通過執(zhí)行該命令得到的.
ps命令最常用的還是用于監(jiān)控后臺進程的工作情況,因為后臺進程是不和屏幕鍵盤這些標準輸入/輸出設備進行通信的,所以如果需要檢測其情況,便可以使用ps命令了.
1)ps a 顯示現(xiàn)行終端機下的所有程序麦箍,包括其他用戶的程序漓藕。
2)ps -A 顯示所有程序。
3)ps c 列出程序時挟裂,顯示每個程序真正的指令名稱享钞,而不包含路徑,參數(shù)或常駐服務的標示诀蓉。
4)ps -e 此參數(shù)的效果和指定"A"參數(shù)相同栗竖。
5)ps e 列出程序時,顯示每個程序所使用的環(huán)境變量渠啤。
6)ps f 用ASCII字符顯示樹狀結(jié)構(gòu)狐肢,表達程序間的相互關系。
7)ps -H 顯示樹狀結(jié)構(gòu)沥曹,表示程序間的相互關系份名。
8)ps -N 顯示所有的程序,除了執(zhí)行ps指令終端機下的程序之外妓美。
9)ps s 采用程序信號的格式顯示程序狀況僵腺。
10)ps S 列出程序時,包括已中斷的子程序資料壶栋。
11)ps -t<終端機編號> 指定終端機編號辰如,并列出屬于該終端機的程序的狀況。
12)ps u 以用戶為主的格式來顯示程序狀況贵试。
13)ps x 顯示所有程序琉兜,不以終端機來區(qū)分。
最常用的方法是ps -aux,然后再利用一個管道符號導向到grep去查找特定的進程,然后再對特定的進程進行操作锡移。
linux上進程有5種狀態(tài):
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發(fā)生)
4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調(diào)用wait4()系統(tǒng)調(diào)用后釋放)
5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運行運行)
ps工具標識進程的5種狀態(tài)碼:
D 不可中斷 uninterruptible sleep (usually IO)
R 運行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
注: 其它狀態(tài)還包括W(無駐留頁), <(高優(yōu)先級進程), N(低優(yōu)先級進程), L(內(nèi)存鎖頁).
使用ps格式輸出來查看進程狀態(tài):
ps -eo user,stat..,cmd
user 用戶名
uid 用戶號
pid 進程號
ppid 父進程號
size 內(nèi)存大小, Kbytes字節(jié).
vsize 總虛擬內(nèi)存大小, bytes字節(jié)(包含code+data+stack)
share 總共享頁數(shù)
nice 進程優(yōu)先級(缺省為0, 最大為-20)
priority(pri) 內(nèi)核調(diào)度優(yōu)先級
pmem 進程分享的物理內(nèi)存數(shù)的百分比
trs 程序執(zhí)行代碼駐留大小
rss 進程使用的總物理內(nèi)存數(shù), Kbytes字節(jié)
time 進程執(zhí)行起到現(xiàn)在總的CPU暫用時間
stat 進程狀態(tài)
cmd(args) 執(zhí)行命令的簡單格式
例子:
查看當前系統(tǒng)進程的uid,pid,stat,pri, 以uid號排序.
ps -eo pid,stat,pri,uid –sort uid
查看當前系統(tǒng)進程的user,pid,stat,rss,args, 以rss排序.
ps -eo user,pid,stat,rss,args –sort rss
名稱:ps
使用權(quán)限:所有使用者
使用方式:ps [options] [--help]
說明:顯示瞬間行程 (process) 的動態(tài)
參數(shù):
ps 的參數(shù)非常多, 在此僅列出幾個常用的參數(shù)并大略介紹含義
-A 列出所有的行程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程
au(x) 輸出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程擁有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的記憶體使用率
VSZ: 占用的虛擬記憶體大小
RSS: 占用的記憶體大小
TTY: 終端的次要裝置號碼 (minor device number of tty)
STAT: 該行程的狀態(tài):
D: 不可中斷的靜止
R: 正在執(zhí)行中
S: 靜止狀態(tài)
T: 暫停執(zhí)行
Z: 不存在但暫時無法消除
W: 沒有足夠的記憶體分頁可分配
<: 高優(yōu)先序的行程
N: 低優(yōu)先序的行程
L: 有記憶體分頁分配并鎖在記憶體內(nèi)
START: 行程開始時間
TIME: 執(zhí)行的時間
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]
........
要對進程進行監(jiān)測和控制呕童,首先必須要了解當前進程的情況,也就是需要查看當前進程淆珊,而 ps 命令就是最基本同時也是非常強大的進程查看命令夺饲。使用該命令可以確定有哪些進程正在運行和運行的狀態(tài)、進程是否結(jié)束、進程有沒有僵死往声、哪些進程占用了過多的資源等等擂找。總之大部分信息都是可以通過執(zhí)行該命令得到的浩销。
ps 為我們提供了進程的一次性的查看贯涎,它所提供的查看結(jié)果并不動態(tài)連續(xù)的;如果想對進程時間監(jiān)控慢洋,應該用 top 工具塘雳。
kill 用于殺死進程。
1普筹、ps 的參數(shù)說明
ps 提供了很多的選項參數(shù)败明,常用的有以下幾個:
l 長格式輸出;
u 按用戶名和啟動時間的順序來顯示進程太防;
j 用任務格式來顯示進程妻顶;
f 用樹形格式來顯示進程;
a 顯示所有用戶的所有進程(包括其它用戶)蜒车;
x 顯示無控制終端的進程讳嘱;
r 顯示運行中的進程;
ww 避免詳細參數(shù)被截斷酿愧;
我們常用的選項是組合是 aux 或 lax沥潭,還有參數(shù) f 的應用。
2寓娩、ps aux 或 lax 輸出的解釋
USER 進程的屬主叛氨;
PID 進程的ID呼渣;
PPID 父進程棘伴;
%CPU 進程占用的CPU百分比;
%MEM 占用內(nèi)存的百分比屁置;
NI 進程的NICE值焊夸,數(shù)值大,表示較少占用CPU時間蓝角;
VSZ 進程虛擬大汹逅搿;
RSS 駐留中頁的數(shù)量使鹅;
TTY 終端ID
STAT 進程狀態(tài)(有以下幾種)
D 無法中斷的休眠狀態(tài)(通常 IO 的進程)揪阶;
R 正在運行可中在隊列中可過行的;
S 處于休眠狀態(tài)患朱;
T 停止或被追蹤鲁僚;
W 進入內(nèi)存交換(從內(nèi)核2.6開始無效);
X 死掉的進程(從來沒見過);
Z 僵尸進程冰沙;
< 優(yōu)先級高的進程
N 優(yōu)先級較低的進程
L 有些頁被鎖進內(nèi)存侨艾;
s 進程的領導者(在它之下有子進程);
l 多進程的(使用 CLONE_THREAD, 類似 NPTL pthreads)拓挥;
+ 位于后臺的進程組唠梨;
WCHAN 正在等待的進程資源;
START 啟動進程的時間侥啤;
TIME 進程消耗CPU的時間当叭;
COMMAND 命令的名稱和參數(shù);
3盖灸、應用舉例
[root@localhost ~]# ps -aux |more
可以用 | 管道和 more 連接起來分頁查看科展。
[root@localhost ~]# ps -aux > ps001.txt
[root@localhost ~]# more ps001.txt
這里是把所有進程顯示出來,并輸出到ps001.txt文件糠雨,然后再通過more 來分頁查看才睹。
4、kill 終止進程
有十幾種控制進程的方法甘邀,下面是一些常用的方法:
kill -STOP [pid]
發(fā)送SIGSTOP (17,19,23)停止一個進程琅攘,而并不消滅這個進程。
kill -CONT [pid]
發(fā)送SIGCONT (19,18,25)重新開始一個停止的進程松邪。
kill -KILL [pid]
發(fā)送SIGKILL (9)強迫進程立即停止坞琴,并且不實施清理操作。
kill -9 -1
終止你擁有的全部進程逗抑。
SIGKILL 和 SIGSTOP 信號不能被捕捉剧辐、封鎖或者忽略,但是邮府,其它的信號可以荧关。所以這是你的終極武器。