对于我们系统管理员和普通用户来说,我们主要关心的是启动、停止和重新启动服务、停止失控的进程和被挂起的进程

 由于职责的需要,您不得不费力地阅读那些令您感到费解的晦涩的Linux应用程式的说明文档。然后,您将运行指令和编辑配置文档。一切都在正常运行,生活真美好。但是,您知道,好时光不会永远持续下去。当您碰到令人恐惧的“send the process a SIGHUP”提示时,好时光结束了。

  什么是“SIGHUP”,您如何发送他?他像是您送给您的恋人的一束花吗?虽然您能够肯定这不是个命令行指令,但是,您还是试着键入他。当然,这没有结果。然后,您检查一下键盘。哦,没有SIGHUP键。于是您又重新阅读这个应用程式的参考指南,看到下面这段文字:

  当收到一个hangup(进程结束)信号时,sshd程式会重新阅读配置文档。通过执行启动程式时的命令及选项来发送SIGHUP信号,如:/usr/sbin/sshd。

  哦,原来是这样。

  程式员 VS 使用者

  LINUX程式的在线参考指南作者一般都要既照顾到最终用户的需求也要照顾到高级程式员的需求。因此,有些说明比较难懂。但是,不要担心。现在我们就要揭开覆盖在这些让人迷惑的内容上面那神秘的面纱。

  信号和进程控制

  这个问题主要属于信号和进程控制的范畴。对于我们系统管理员和普通用户来说,我们主要关心的是启动、停止和重新启动服务、停止失控的进程和被挂起的进程,并且尽可能不中断系统运行。因为不同的操作系统和不同的命令外壳处理信号的方式都不相同,我们这里只介绍Linux操作系统和bash外壳。

  信号是用来和守护程式和进程通信的。任何活动任务都是个进程,而守护程式是等待对某些事件做出反应或按照日程安排执行任务的后台服务。一个程式必须有建在其中的信号处理程式用于捕获和应答信号。在LINUX中的signal 参考指南解释了各种不同信号和这些信号的用途。信号是由 “kill”命令发出的。kill -l命令能够显示一个可用信号列表及其编号。

  任何的守护程式和进程都有一个进程ID(PID),例如使用ps命名所显示的内容:

  $ ps aux
  USER PID %CPU %MEM TTY STAT COMMAND
  root 1 0.0 0.1 ? S init [2]
  105 7783 0.0 0.2 ? Ss /usr/bin/dbus-daemon --system
  hal 7796 0.0 0.7 ? Ss /usr/sbin/hald
  postfix 7957 0.0 0.2 ? S qmgr -l -t fifo -u -c
  nagios 8371 0.0 0.2 ? SNs /usr/sbin/nagios /etc/nagios/nagios.cfg

  这个输出是经过简化的。您在系统中能够看到更多的行和栏目。假如某些进程消耗了您的全部CPU或内存,您能够在这个输出的%CPU和%MEM 列中发现他们。找到失控的进程的一种更快捷的方法是使用top命令,因为按照默认的配置,使用占用CPU资源最多的进程在最上面显示。我们能够使用一条 “yes”命令来测试一下:

$ yes carla is teh awesum

  这个命令将以很高的速度反复显示“carla is teh awesum”,直到您停止他运行。这将使您的CPU使用率达到警戒线。

  $ top
  ...
  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
  12144 carla 25 0 31592 17m 13m R 93.4 3.5 0:50.26 konsole
  22236 carla 15 0 2860 468 400 S 4.3 0.1 0:00.97 yes

分析一下这个结果,您会发现一些有趣的事,您会发现,占用CPU最多的程式是konsole虚拟终端程式,而不是“yes”命令,这是因为“yes”命令是在konsole终端程式中运行的。假如在一个“真正的”控制台(按Ctrl alt f2键)中运行同样的命令序列,您将看到“yes”命令被排在第一位。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!