ÈçºÎµÃµ½Ò»¸öÐÂÔö¼ÓµÄϵͳ½ø³ÌÃû
ÎÒÏÖÔÚÏëдһ¸ö½Å±¾£¬Ä¿µÄÊÇʵÏÖ¶Ôϵͳ½ø³ÌµÄʱʱ¼à²â£¬Èç¹ûÓÐеĽø³Ì²úÉú£¬»ñµÃËüµÄ½ø³ÌÃû¡£ÎÒµÄ˼·ÊÇÓÃÒ»¸öÑ»··ÅÔÚºǫ́À´¼àÊÓϵͳ½ø³ÌÊý£¬Èç¹û½ø³ÌÊýÔö¼Ó£¬±íʾÓÐеĽø³ÌÀ´ÁË£¬È»ºó»ñµÃËüµÄ½ø³ÌÃû£¬ÒÔ±ãÍê³ÉÎÒºóÃæµÄ³ÌÐòÊäÈë¡£ÓÉÓÚÊÇʵʱµÄ£¬ËùÒÔ»ù±¾²»´æÔÚÒ»¸ö½ø³ÌÏûʧͬʱÓÖÓÐеĽø³ÌÔÚͬһʱ¼ä²úÉúµÄÇé¿ö¡£ÎÒºÍÆäËûÈËÌÖÂÛ¹ý£¬ÓÐÈ˽¨Òé°Ñps -aux³öÀ´µÄ¶«Î÷ÖØ¶¨Ïòµ½Îı¾ÖУ¬ÔÙ½øÐбȽϡ£ÕâÑù¶ÔϵͳµÄ¿ªÏú¿ÉÄܾͱȽϴóÁË£¬µ«ÊÇÖ±½ÓÔÚÄÚ´æÖÐÄܹ»·¢ÏÖÐÂÀ´µÄ½ø³ÌµÄ»°£¬ÏµÍ³¿ªÏú¾ÍºÜСÁË¡£¶ÔÓÚÐÂÀ´µÄ½ø³Ì£¬ÎÒÏÖÔÚÒ»Ö±ÎÞ·¨»ñµÃ½ø³ÌÃû£¬²»ÖªµÀÓÐÄÄλÅóÓÑÄܹ»Ö¸µãһϣ¬Ð»Ð»£¡ ÔõôûÓÐÈ˻ش𰡣¿ÊÇÕâ¸öÎÊÌâÄãÃǾõµÃÌ«¼òµ¥ÁË»¹ÊÇÄÑÁË£¿ÎÒºÍͬÊÂÌÖÂÛ¹ý£¬Õâ¸öÎÊÌâÓ¦¸Ã»¹ÊôÓÚÄÜÖµµÃÒ»»Ø´ðµÄ°É£¿Ôõô¾ÍûÈ˻ظ´°¡£¡ Äã˵µÄ½ø³ÌÃûÊÇʲô£¿ÊDz»ÊÇ£º[code]PID T STAT TIME COMMAND
7904 co R 0:00 ps -a[/code]
ÀïµÄCOMMANDÕâ¸ö×ֶΣ¿ ¶Ô£¬ÊÇcomand×ֶΣ¬µ«ÊÇÈçºÎ¼ì²âµ½ÓÐнø³ÌÉú³É²¢»ñÈ¡ËûµÄÃû³ÆÎҾͲ»ÖªµÀ¸ÃÔõôʵÏÖÁË ¹þ¹þ£¬¸øÎÒ¹ØÐĵÄÎÊÌâÕýºÃÏà·´£¬Ïë¼àÊÓ½áÊø½ø³Ì£¬ÒÔ¼°ÊÇ˽áÊøÕâ¸ö½ø³Ì¡£
ÔõÑùʱʵµÄ¼àÊÓ£¿
ÇëÖ¸µã£¡£¡ /procÏÂËùÓÐÒÔÊý×ÖÃüÃûµÄĿ¼¶¼ÊÇ´æ·Å½ø³Ì×ÊÁϵġ£Ä¿Â¼Ãû¾ÍÊǽø³ÌºÅ£¬½ø³ÌÃû¿ÉÔÚÆäϵÄstatusÎļþÀï»ñÈ¡¡£ Õâ¸öÖ÷Òâ²»´íµÄÑù×Ó /procÏÂÃæµÄidºÜ¶à£¬Èç¹ûÓÐеĽø³Ì²úÉú£¬ºÃÏó»á²úÉúһϵÁеÄ×Ó½ø³Ì£¬±ä»¯±È½Ï´ó£¬²»ÀûÓÚ¹Û²ì²úÉúµÄºËÐĽø³Ì¡£Èç¹û±éÀú/procÏÂÃæµÄid£¬»á²»»á¿ªÏúºÜ´ó£¬ÎÒÕâ¸ö³ÌÐò¿ÉÊÇʱʱ¼à¿ØµÄ¡£ Èç¹û¶ÔЧÂÊÒªÇó½Ï¸ßµÄ»°£¬»¹ÊÇ¿´¿´ ps µÄ code °É ÒªµÃµ½command×Ö¶ÎÌ«ÈÝÒ×ÁË£¬ÄãºóÃæµÄÎÊÌâÎÒÒ²´¦Àï²»ÁË¡£
[code]ps > ps.txt
awk '{print $8}' ps.txt #$8¾ÍÊÇ×Ö¶ÎÁË£¬ÄãµÄÒ²ÐíÊÇ$7.6.5[/code]
µÃµ½µÄ¾ÍÊÇcommand×ֶΡ£
Òª±È½ÏÁ½¸öʱµãµÄpsÒªÓõ½Êý×éµÄ¸ÅÄÎÒû°ì·¨´¦Àí¡£ ÉÏÃæÐ´¶àÁË£¬Ò»¾ä£º
ps|awk '{print $8}' [QUOTE=cugshomi]/procÏÂÃæµÄidºÜ¶à£¬Èç¹ûÓÐеĽø³Ì²úÉú£¬ºÃÏó»á²úÉúһϵÁеÄ×Ó½ø³Ì£¬±ä»¯±È½Ï´ó£¬²»ÀûÓÚ¹Û²ì²úÉúµÄºËÐĽø³Ì¡£Èç¹û±éÀú/procÏÂÃæµÄid£¬»á²»»á¿ªÏúºÜ´ó£¬ÎÒÕâ¸ö³ÌÐò¿ÉÊÇʱʱ¼à¿ØµÄ¡£[/QUOTE]
ÀÏ·òµÄ¿´·¨ÊÇ£¬ls -t¿´×îеĽø³ÌĿ¼£¬¸úÏÈǰµÄ×îнø³ÌĿ¼Éú³ÉµÄʱ¼ä¶Ô±È£¬Ö®ºó¿ÉÖªÆäÊÇ·ñнø³Ì¡£
ÖÁÓÚÖÖÖÖ¸´ÔÓµÄϸ½Ú£¬ÔÝʱÏë²»µ½ÄÇô¶à¡£²»¹ýºÎ·ÁÒ»ÊÔ¡£
¡¡¡¡
¡¡¡¡ СÊÔÒ»°Ñ (Redhat 9.0):[code][color=blue]-(user@host:tty)-(bash)-
[29396 0] $ [/color]cat proc_monitor.sh
#! /bin/bash
# vi:set ts=8 sw=4 et sta:
#
# Author: dearvoid AT 263 DOT net
#
# $Date: 2006-04-21 11:23:15 +0800 (Fri, 21 Apr 2006) $
# $HeadURL: svn://jwang/repos/trunk/void/bash/proc_monitor.sh $
# $Revision: 93 $
#
old=/tmp/proc.old
new=/tmp/proc.new
rm -f $old $new
cd /proc || exit 1
while true; do
ls -d1 [1-9]* > $new
if [ -f $old ]; then
found=0
for pid in $(diff -u $old $new | grep -- '^[-+][1-9]'); do
found=1
printf "%-10s" "$pid"
if [[ "$pid" == +* ]]; then
{ xargs -0 echo < /proc/${pid#?}/cmdline; } 2> /dev/null || echo "[N/A]"
else
echo
fi
done
if [ $found -gt 0 ]; then
echo "----------------------------------------"
fi
fi
sleep 1
mv -f $new $old
done
rm -f $old $new
[color=blue]-(user@host:tty)-(bash)-
[29396 0] $ [/color]./proc_monitor.sh
+4861 find /usr -name svn
----------------------------------------
-4861
----------------------------------------
+4936 find /usr -name ctags
----------------------------------------
-4936
----------------------------------------
+4993 sleep 120
----------------------------------------
-4993
----------------------------------------
[color=blue]-(user@host:tty)-(bash)-
[29396 130] $ [/color]
[/code] °ßÖñµÄ´úÂëÎÒ¸Õ¿´µ½£¬²»¹ý»¹Ã»ÓÐÊÔ¹ý£¬¶ÔÓÚ·¢ÏÖнø³ÌÓ¦¸ÃÊÇ¿ÉÐеġ£²»¹ýÎÒ×òÌìÊÔÁËһϣ¬Ð¿ª¸ö¿ØÖÆÌ¨µÇ½ϵͳ£¬ÕâʱÊÇlogin½ø³Ì£¬»áÔÚ/procϲúÉú3µ½4¸öpid¡£Õâ¶Ô²¶×½ºËÐĽø³ÌºÃÏóЧ¹û²»ºÃ¡£¸ãµÄ½ñÌìдÁËÒ»¸ö³ÌÐòרÃżì²âÌØ¶¨¼¸¸öÊØ»¤½ø³ÌµÄ³ÌÐò£¬°ÑÊØ»¤½ø³ÌµÄϵͳµ÷ÓÃÐòÁеõ½£¬×îºóʵÏÖ»º³åÇø»òÕßÏÚÃŹ¥»÷µÄ¼ì²â¡£Ö»²»¹ýϵͳµ÷ÓõÄÍêÈ«ÁбíÎÒ»¹²»ÖªµÀ´ÓÄĵõ½£¬unistd.hÖÐÖ»Äܰüº¬´ó²¿·Ö£¬²»ÊÇËùÓС£ÏÖÔÚÎÒÒ²Ö»ÄÜ×öÕë¶ÔijһÖÖ»òÕß¼¸ÖÖϵͳ½ø³ÌµÄÈëÇÖ¼ì²âÁË¡£ÏµÍ³µ÷ÓõÄÍêÈ«Áбí°ßÖñÖªµÀ´ÓÄĵõ½Â𣿰üÀ¨socket¡¢old_mmap¡¢connectµÄÍøÂçϵͳµ÷ÓõÄÍêÈ«ÁÐ±í¡£
Ò³:
[1]