×÷Õß: velcbo
2014-07-14 10:20:50
LinuxÖеÄpsÃüÁîÊÇProcess StatusµÄËõд¡£psÃüÁîÓÃÀ´ÁгöϵͳÖе±Ç°ÔËÐеÄÄÇЩ½ø³Ì¡£psÃüÁîÁгöµÄÊǵ±Ç°ÄÇЩ½ø³ÌµÄ¿ìÕÕ£¬¾ÍÊÇÖ´ÐÐpsÃüÁîµÄÄǸöʱ¿ÌµÄÄÇЩ½ø³Ì£¬Èç¹ûÏëÒª¶¯Ì¬µÄÏÔʾ½ø³ÌÐÅÏ¢£¬¾Í¿ÉÒÔʹÓÃtopÃüÁî¡£
Òª¶Ô½ø³Ì½øÐмà²âºÍ¿ØÖÆ£¬Ê×ÏȱØÐëÒªÁ˽⵱ǰ½ø³ÌµÄÇé¿ö£¬Ò²¾ÍÊÇÐèÒª²é¿´µ±Ç°½ø³Ì£¬¶ø ps ÃüÁî¾ÍÊÇ×î»ù±¾Í¬Ê±Ò²ÊǷdz£Ç¿´óµÄ½ø³Ì²é¿´ÃüÁʹÓøÃÃüÁî¿ÉÒÔÈ·¶¨ÓÐÄÄЩ½ø³ÌÕýÔÚÔËÐкÍÔËÐеÄ״̬¡¢½ø³ÌÊÇ·ñ½áÊø¡¢½ø³ÌÓÐûÓн©ËÀ¡¢ÄÄЩ½ø³ÌÕ¼ÓÃÁ˹ý¶àµÄ×ÊÔ´µÈµÈ¡£×ÜÖ®´ó²¿·ÖÐÅÏ¢¶¼ÊÇ¿ÉÒÔͨ¹ýÖ´ÐиÃÃüÁîµÃµ½µÄ¡£
ps ΪÎÒÃÇÌṩÁ˽ø³ÌµÄÒ»´ÎÐԵIJ鿴£¬ËüËùÌṩµÄ²é¿´½á¹û²¢²»¶¯Ì¬Á¬ÐøµÄ£»Èç¹ûÏë¶Ô½ø³Ìʱ¼ä¼à¿Ø£¬Ó¦¸ÃÓà top ¹¤¾ß¡£
kill ÃüÁîÓÃÓÚɱËÀ½ø³Ì¡£
linuxÉϽø³ÌÓÐ5ÖÖ״̬:
1. ÔËÐÐ(ÕýÔÚÔËÐлòÔÚÔËÐжÓÁÐÖеȴý)
2. ÖжÏ(ÐÝÃßÖÐ, ÊÜ×è, Ôڵȴýij¸öÌõ¼þµÄÐγɻò½ÓÊܵ½ÐźÅ)
3. ²»¿ÉÖжÏ(ÊÕµ½ÐźŲ»»½ÐѺͲ»¿ÉÔËÐÐ, ½ø³Ì±ØÐëµÈ´ýÖ±µ½ÓÐÖжϷ¢Éú)
4. ½©ËÀ(½ø³ÌÒÑÖÕÖ¹, µ«½ø³ÌÃèÊö·û´æÔÚ, Ö±µ½¸¸½ø³Ìµ÷ÓÃwait4()ϵͳµ÷ÓúóÊÍ·Å)
5. Í£Ö¹(½ø³ÌÊÕµ½SIGSTOP, SIGSTP, SIGTIN, SIGTOUÐźźóÍ£Ö¹ÔËÐÐÔËÐÐ)
ps¹¤¾ß±êʶ½ø³ÌµÄ5ÖÖ״̬Âë:
D ²»¿ÉÖÐ¶Ï uninterruptible sleep (usually IO)
R ÔËÐÐ runnable (on run queue)
S ÖÐ¶Ï sleeping
T ֹͣ traced or stopped
Z ½©ËÀ a defunct (¡±zombie¡±) process
1£®ÃüÁî¸ñʽ£º
ps[²ÎÊý]
2£®ÃüÁÄÜ£º
ÓÃÀ´ÏÔʾµ±Ç°½ø³ÌµÄ״̬
3£®ÃüÁî²ÎÊý£º
a ÏÔʾËùÓнø³Ì
-a ÏÔʾͬһÖÕ¶ËϵÄËùÓгÌÐò
-A ÏÔʾËùÓнø³Ì
c ÏÔʾ½ø³ÌµÄÕæʵÃû³Æ
-N ·´ÏòÑ¡Ôñ
-e µÈÓÚ¡°-A¡±
e ÏÔʾ»·¾³±äÁ¿
f ÏÔʾ³ÌÐò¼äµÄ¹Øϵ
-H ÏÔʾÊ÷×´½á¹¹
r ÏÔʾµ±Ç°Öն˵Ľø³Ì
T ÏÔʾµ±Ç°Öն˵ÄËùÓгÌÐò
u Ö¸¶¨Óû§µÄËùÓнø³Ì
-au ÏÔʾ½ÏÏêϸµÄ×ÊѶ
-aux ÏÔʾËùÓаüº¬ÆäËûʹÓÃÕßµÄÐгÌ
-C<ÃüÁî> ÁгöÖ¸¶¨ÃüÁîµÄ×´¿ö
--lines<ÐÐÊý> ÿҳÏÔʾµÄÐÐÊý
--width<×Ö·ûÊý> ÿҳÏÔʾµÄ×Ö·ûÊý
--help ÏÔʾ°ïÖúÐÅÏ¢
--version ÏÔʾ°æ±¾ÏÔʾ
4£®Ê¹ÓÃʵÀý£º
ʵÀý1£ºÏÔʾËùÓнø³ÌÐÅÏ¢
ÃüÁ
ps -A
Êä³ö£º
[root@localhost test6]# ps -A
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:01 migration/0
3 ? 00:00:00 ksoftirqd/0
4 ? 00:00:01 migration/1
5 ? 00:00:00 ksoftirqd/1
6 ? 00:29:57 events/0
7 ? 00:00:00 events/1
8 ? 00:00:00 khelper
49 ? 00:00:00 kthread
54 ? 00:00:00 kblockd/0
55 ? 00:00:00 kblockd/1
56 ? 00:00:00 kacpid
217 ? 00:00:00 cqueue/0
¡¡Ê¡ÂÔ²¿·Ö½á¹û
˵Ã÷£º
ʵÀý2£ºÏÔʾָ¶¨Óû§ÐÅÏ¢
ÃüÁ
ps -u root
Êä³ö£º
[root@localhost test6]# ps -u root
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:01 migration/0
3 ? 00:00:00 ksoftirqd/0
4 ? 00:00:01 migration/1
5 ? 00:00:00 ksoftirqd/1
6 ? 00:29:57 events/0
7 ? 00:00:00 events/1
8 ? 00:00:00 khelper
49 ? 00:00:00 kthread
54 ? 00:00:00 kblockd/0
55 ? 00:00:00 kblockd/1
56 ? 00:00:00 kacpid
¡¡Ê¡ÂÔ²¿·Ö½á¹û
˵Ã÷£º
ʵÀý3£ºÏÔʾËùÓнø³ÌÐÅÏ¢£¬Á¬Í¬ÃüÁîÐÐ
ÃüÁ
ps -ef
Êä³ö£º
[root@localhost test6]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Nov02 ? 00:00:00 init [3]
root 2 1 0 Nov02 ? 00:00:01 [migration/0]
root 3 1 0 Nov02 ? 00:00:00 [ksoftirqd/0]
root 4 1 0 Nov02 ? 00:00:01 [migration/1]
root 5 1 0 Nov02 ? 00:00:00 [ksoftirqd/1]
root 6 1 0 Nov02 ? 00:29:57 [events/0]
root 7 1 0 Nov02 ? 00:00:00 [events/1]
root 8 1 0 Nov02 ? 00:00:00 [khelper]
root 49 1 0 Nov02 ? 00:00:00 [kthread]
root 54 49 0 Nov02 ? 00:00:00 [kblockd/0]
root 55 49 0 Nov02 ? 00:00:00 [kblockd/1]
root 56 49 0 Nov02 ? 00:00:00 [kacpid]
¡¡Ê¡ÂÔ²¿·Ö½á¹û
˵Ã÷£º
ʵÀý4£º ps Óëgrep ³£ÓÃ×éºÏÓ÷¨£¬²éÕÒÌض¨½ø³Ì
ÃüÁ
ps -ef|grep ssh
Êä³ö£º
[root@localhost test6]# ps -ef|grep ssh
root 2720 1 0 Nov02 ? 00:00:00 /usr/sbin/sshd
root 17394 2720 0 14:58 ? 00:00:00 sshd: root@pts/0
root 17465 17398 0 15:57 pts/0 00:00:00 grep ssh
˵Ã÷£º
ʵÀý5£º½«Ä¿Ç°ÊôÓÚÄú×Ô¼ºÕâ´ÎµÇÈëµÄ PID ÓëÏà¹ØÐÅÏ¢ÁÐʾ³öÀ´
ÃüÁ
ps -l
Êä³ö£º
[root@localhost test6]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 17398 17394 0 75 0 - 16543 wait pts/0 00:00:00 bash
4 R 0 17469 17398 0 77 0 - 15877 - pts/0 00:00:00 ps
˵Ã÷£º
¸÷Ïà¹ØÐÅÏ¢µÄÒâÒ壺
F ´ú±íÕâ¸ö³ÌÐòµÄÆì±ê (flag)£¬ 4 ´ú±íʹÓÃÕßΪ super user
S ´ú±íÕâ¸ö³ÌÐòµÄ״̬ (STAT)£¬¹ØÓÚ¸÷ STAT µÄÒâÒ彫ÔÚÄÚÎĽéÉÜ
UID ³ÌÐò±»¸Ã UID ËùÓµÓÐ
PID ¾ÍÊÇÕâ¸ö³ÌÐòµÄ ID £¡
PPID ÔòÊÇÆäÉϼ¶¸¸³ÌÐòµÄID
C CPU ʹÓõÄ×ÊÔ´°Ù·Ö±È
PRI Õâ¸öÊÇ Priority (ÓÅÏÈÖ´ÐÐÐò) µÄËõд£¬ÏêϸºóÃæ½éÉÜ
NI Õâ¸öÊÇ Nice Öµ£¬ÔÚÏÂһС½ÚÎÒÃÇ»á³ÖÐø½éÉÜ
ADDR Õâ¸öÊÇ kernel function£¬Ö¸³ö¸Ã³ÌÐòÔÚÄÚ´æµÄÄǸö²¿·Ö¡£Èç¹ûÊǸö runningµÄ³ÌÐò£¬Ò»°ã¾ÍÊÇ "-"
SZ ʹÓõôµÄÄÚ´æ´óС
WCHAN Ä¿Ç°Õâ¸ö³ÌÐòÊÇ·ñÕýÔÚÔË×÷µ±ÖУ¬ÈôΪ - ±íʾÕýÔÚÔË×÷
TTY µÇÈëÕßµÄÖն˻úλÖÃ
TIME ʹÓõôµÄ CPU ʱ¼ä¡£
CMD ËùÏ´ïµÄÖ¸ÁîΪºÎ
ÔÚÔ¤ÉèµÄÇé¿öÏ£¬ ps ½ö»áÁгöÓëÄ¿Ç°ËùÔÚµÄ bash shell ÓÐ¹ØµÄ PID ¶øÒÑ£¬ËùÒÔ£¬ µ±ÎÒʹÓà ps -l µÄʱºò£¬Ö»ÓÐÈý¸ö PID¡£
ʵÀý6£ºÁгöÄ¿Ç°ËùÓеÄÕýÔÚÄÚ´æµ±ÖеijÌÐò
ÃüÁ
ps aux
Êä³ö£º
[root@localhost test6]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 10368 676 ? Ss Nov02 0:00 init [3]
root 2 0.0 0.0 0 0 ? S< Nov02 0:01 [migration/0]
root 3 0.0 0.0 0 0 ? SN Nov02 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< Nov02 0:01 [migration/1]
root 5 0.0 0.0 0 0 ? SN Nov02 0:00 [ksoftirqd/1]
root 6 0.0 0.0 0 0 ? S< Nov02 29:57 [events/0]
root 7 0.0 0.0 0 0 ? S< Nov02 0:00 [events/1]
root 8 0.0 0.0 0 0 ? S< Nov02 0:00 [khelper]
root 49 0.0 0.0 0 0 ? S< Nov02 0:00 [kthread]
root 54 0.0 0.0 0 0 ? S< Nov02 0:00 [kblockd/0]
root 55 0.0 0.0 0 0 ? S< Nov02 0:00 [kblockd/1]
root 56 0.0 0.0 0 0 ? S< Nov02 0:00 [kacpid]
¡¡Ê¡ÂÔ²¿·Ö½á¹û
˵Ã÷£º
USER£º¸Ã process ÊôÓÚÄǸöʹÓÃÕßÕ˺ŵÄ
PID £º¸Ã process µÄºÅÂë
%CPU£º¸Ã process ʹÓõôµÄ CPU ×ÊÔ´°Ù·Ö±È
%MEM£º¸Ã process ËùÕ¼ÓõÄÎïÀíÄÚ´æ°Ù·Ö±È
VSZ £º¸Ã process ʹÓõôµÄÐéÄâÄÚ´æÁ¿ (Kbytes)
RSS £º¸Ã process Õ¼ÓõĹ̶¨µÄÄÚ´æÁ¿ (Kbytes)
TTY £º¸Ã process ÊÇÔÚÄǸöÖն˻úÉÏÃæÔË×÷£¬ÈôÓëÖն˻úÎ޹أ¬ÔòÏÔʾ ?£¬ÁíÍ⣬ tty1-tty6 ÊDZ¾»úÉÏÃæµÄµÇÈëÕß³ÌÐò£¬ÈôΪ pts/0 µÈµÈµÄ£¬Ôò±íʾΪÓÉÍøÂçÁ¬½Ó½øÖ÷»úµÄ³ÌÐò¡£
STAT£º¸Ã³ÌÐòÄ¿Ç°µÄ״̬£¬Ö÷ÒªµÄ״̬ÓÐ
R £º¸Ã³ÌÐòÄ¿Ç°ÕýÔÚÔË×÷£¬»òÕßÊǿɱ»ÔË×÷
S £º¸Ã³ÌÐòÄ¿Ç°ÕýÔÚ˯Ãßµ±ÖÐ (¿É˵ÊÇ idle ״̬)£¬µ«¿É±»Ä³Ð©Ñ¶ºÅ (signal) »½ÐÑ¡£
T £º¸Ã³ÌÐòÄ¿Ç°ÕýÔÚÕì²â»òÕßÊÇÍ£Ö¹ÁË
Z £º¸Ã³ÌÐòÓ¦¸ÃÒѾÖÕÖ¹£¬µ«ÊÇÆ丸³ÌÐòÈ´ÎÞ·¨Õý³£µÄÖÕÖ¹Ëû£¬Ôì³É zombie (½®Ê¬) ³ÌÐòµÄ״̬
START£º¸Ã process ±»´¥·¢Æô¶¯µÄʱ¼ä
TIME £º¸Ã process ʵ¼ÊʹÓà CPU ÔË×÷µÄʱ¼ä
COMMAND£º¸Ã³ÌÐòµÄʵ¼ÊÖ¸Áî
ʵÀý7£ºÁгöÀàËƳÌÐòÊ÷µÄ³ÌÐòÏÔʾ
ÃüÁ
ps -axjf
Êä³ö£º
[root@localhost test6]# ps -axjf
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 1 1 1 ? -1 Ss 0 0:00 init [3]
1 2 1 1 ? -1 S< 0 0:01 [migration/0]
1 3 1 1 ? -1 SN 0 0:00 [ksoftirqd/0]
1 4 1 1 ? -1 S< 0 0:01 [migration/1]
1 5 1 1 ? -1 SN 0 0:00 [ksoftirqd/1]
1 6 1 1 ? -1 S< 0 29:58 [events/0]
1 7 1 1 ? -1 S< 0 0:00 [events/1]
1 8 1 1 ? -1 S< 0 0:00 [khelper]
1 49 1 1 ? -1 S< 0 0:00 [kthread]
49 54 1 1 ? -1 S< 0 0:00 \_ [kblockd/0]
49 55 1 1 ? -1 S< 0 0:00 \_ [kblockd/1]
49 56 1 1 ? -1 S< 0 0:00 \_ [kacpid]
˵Ã÷£º
ʵÀý8£ºÕÒ³öÓë cron Óë syslog ÕâÁ½¸ö·þÎñÓÐ¹ØµÄ PID ºÅÂë
ÃüÁ
Êä³ö£º
[root@localhost test6]# ps aux | egrep '(cron|syslog)'
root 2682 0.0 0.0 83384 2000 ? Sl Nov02 0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
root 2735 0.0 0.0 74812 1140 ? Ss Nov02 0:00 crond
root 17475 0.0 0.0 61180 832 pts/0 S+ 16:27 0:00 egrep (cron|syslog)
[root@localhost test6]#
˵Ã÷£º
ÆäËûʵÀý£º
1. ¿ÉÒÔÓà | ¹ÜµÀºÍ more Á¬½ÓÆðÀ´·ÖÒ³²é¿´
ÃüÁ
ps -aux |more
2. °ÑËùÓнø³ÌÏÔʾ³öÀ´£¬²¢Êä³öµ½ps001.txtÎļþ
ÃüÁ
ps -aux > ps001.txt
3. Êä³öÖ¸¶¨µÄ×Ö¶Î
ÃüÁ
ps -o pid,ppid,pgrp,session,tpgid,comm
Êä³ö£º
[root@localhost test6]# ps -o pid,ppid,pgrp,session,tpgid,comm
PID PPID PGRP SESS TPGID COMMAND
17398 17394 17398 17398 17478 bash
17478 17398 17478 17398 17478 ps
[root@localhost test6]#
×÷ÕߣºËïÑÇÁú