系统管理员工具包: 进程管理技巧
2008-11-11 08:13:38 来源:WEB开发网$ ps -e -opid,command |grep httpd|awk '{print $1}'
通过使用 awk,仅筛选除去打印输出中的第一个参数,即进程 ID。
$ ps -e -opid,command |grep httpd|awk '{print $1}'|xargs kill -9
xargs 命令接收空白字符分隔的项目列表(其中空白字符包括回车、换行、制表符以及一个或多个空格),并把它格式化为参数列表传递给指定的命令,在本示例中是 kill 命令。
最好把它放进脚本程序中,并取一个适当的名字,例如(pkill 或者 killbyname)。可以设置该脚本接收两个参数,信号和匹配文本,甚至还可以考虑操作系统的差别,如清单 13 所示。
清单 13. 通过命令字符串向进程发送消息
#!/bin/sh
HOSTTYPE=`uname -s`
SIGNAL=$1
STRING=$2
if [ -z "$1" -o -z "$2" ]
then
echo Usage: $0 signal string
exit 1
fi
case $HOSTTYPE in
Darwin|BSD)
ps -a -opid,command | grep $STRING | awk '{ print $1; }' | xargs kill $SIGNAL
;;
Linux|Solaris|AIX|HP-UX)
ps -e -opid,command | grep $STRING | awk '{ print $1; }' | xargs kill $SIGNAL
;;
esac
这里所显示的基本技术可以用于其他类似的排序规则。
计算内存使用情况
ps 工具还提供了我们目前尚未涉及的两个列。RSS 列提供了进程的“驻留集大小”,这是该进程所使用的物理内存量,也是进程占用多少实际内存的指示。VSZ 列详细列出进程正在使用的内存总量,包括所分配的内部存储,但通常已被交换到磁盘。对于大多数 ps 变体而言,这两个列都是比较常用的。
更多精彩
赞助商链接