LinuxÈ«ÃæÆÊÎöpsÃüÁî

×÷Õß: 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]#

×÷ÕߣºËïÑÇÁú

Ïà¹Ø×ÊѶ