FreeBSD中Telnet最大连接用户数的定制(6) 48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt ... 第8 页FreeBSD 使用手册 整个输出被分为两节。头上(最初5 行)显示运行着的进程的PID,系统的平均负载(反 映系统的繁忙程度),系统的正常运行时间(从上次重起以来的时间),和当前时间。其 它的图显示了当前运行了多少个进程,有多少内存和交换空间已经被占用,系统在不同CPU 状态之间切换需要花费多长时间。 下面有一连串的竖直排列的ps 命令的输出信息。你可以看到PID,用户名,CPU 时钟 的花费数量,正在运行的命令。Top 也默认地显示了进程所花费掉的内存空间的数量。这可 以被分成两列,一列针对所有的内存数量,一列针对常驻内存数量。整个内存数量就是应 用程序需要多少内存,常驻内存是在此刻使用的内存数量。在这个例子中,你可以看到 Netscape 使用了30M 内存,当前只使用了9MB。Top 每隔两秒自动刷新一次;这可以通过加 上s 选项来修改。 3.6 守护程序,信号和杀死进程 当你使用一个编辑器的时候,你可以要求它加载一些文件。因为它们提供了这样的功 能,而且它们是与一个终端连在一起的。但,有一些程序却不能让用户输入信息,它们是 不与终端连在一起的。例如,一个web 服务器花费所有的时间来回应用户的请求,它通常 不需要你有任何的输入。从一个站点到另一个站点传送email 是另外一个这种类型的应用 例子。我们叫这些程序为daemons(守护程序)。Daemon 具有希腊神话的特征;今天的许 多web 服务器和mail 服务器都使用这些。有时你可能需要与一个守护程序进行通讯。这些 通讯就叫做signal。你可以通过给它发送signal(或是运行进程)来与守护程序通讯。如 果你发送的signal 有很多(有一些有特殊的用处),其它的与应用程序集成在一起,应用 程序的文档会告诉你如何解释signal。你可以发一个signal 给你的一个进程。如果你设法 发送一个signal 给其他人的进程,它就会被忽略。Root 用户除外,它可以发送signal 给 每一个进程。 如果一个应用程序写入错误,就会设法访问内存,FreeBSD 会给进程发送Segmentation Violation signal (SIGSEGV)。如果一个应用程序使用alarm 系统来发出警告,那一段时 间以后,它也会发送警告信号。 两个信号可能会中断一个进程,SIGTERM 和SIGKILL。SIGTERM 是一个比较友好的杀死 进程的方法;这个进程也会捕获信号,以便让你关机,关闭可能打开的一些日志文件。在 第9 页FreeBSD 使用手册 关机之前,通常需要完成当前正在做的工作。有时,如果它是处在一个不能打断的任务中, 一个进程可以忽略SIGTERM。 SIGKILL 无法被进程忽略。它会发出这样的信号“I do not care what you are doing, stop right now”。如果你发送SIGKILL 给一个进程,FreeBSD 将会停止那个进程。 你可能要用到的其他signal 是SIGHUP, SIGUSR1 和SIGUSR2。这些是普通用途的