WEB开发网
开发学院操作系统Linux/Unix 系统管理员工具包: 进程管理技巧 阅读

系统管理员工具包: 进程管理技巧

 2008-11-11 08:13:38 来源:WEB开发网   
核心提示: 要获取指定终端的所有进程,使用 -t,系统管理员工具包: 进程管理技巧(7),如清单 12 所示, 清单 12. 根据终端列出进程$ ps -t 3PID TTYTIME CMD19915 pts/300:00:00 bash29145 pts/300:00:00 emacs32256 p

要获取指定终端的所有进程,使用 -t,如清单 12 所示。

清单 12. 根据终端列出进程

$ ps -t 3
PID TTY     TIME CMD
19915 pts/3  00:00:00 bash
29145 pts/3  00:00:00 emacs
32256 pts/3  00:00:00 emacs

在有了这些信息后,也许想要用它来对进程进行相应的操作。

向多个线程发送信号

当找到了要查询的进程后,最常用的命令之一是 kill。它向一个或多个进程发送特定的信号。对于启动了多个线程或子线程的守护进程的情况,可以尝试向父进程发送信号,以此向所有的进程发送信号。然而,这种方法并不是对所有的守护进程和应用程序都有效。

显然,您希望避免手动挑选出这些进程。有些 UNIX 变种中有一个名为 pkill 的工具,它能够向满足特定模式或其他标准的进程(例如终端、进程组、用户 ID 以及组 ID 列表)发送相同的信号。

可以通过链接 ps、grep、awk、xargs 以及 kill 命令的方式来模拟这一基本操作,向满足特定命令模式的多个进程发送信号。例如,要向所有命令中包含“httpd”的进程发送 kill 信号,可以使用:

$ ps -e -opid,command |grep httpd|awk '{print $1}'|xargs kill -9

如果对单个元素进行研究,将更容易理解它。

$ ps -e -opid,command

该命令显示了所有正在运行的进程的列表(这是在 SVR4 系统中,而在 BSD 中则应使用 -A)。它仅显示了进程 ID 和被执行的命令。不需要任何其他的信息,而且使用更详细的输出可能会引入其他方面符合搜索条件的文本。

$ ps -e -opid,command |grep httpd 

该命令仅提取了命令中含有 httpd 的进程(因为进程列表中产生的唯一其他信息是进程 ID):

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:系统 管理员 工具包

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接