系统管理员工具包: 进程管理技巧
2008-11-11 08:13:38 来源:WEB开发网要获取指定终端的所有进程,使用 -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):
更多精彩
赞助商链接