日期:2014-05-16  浏览次数:20743 次

Linux系统状态检测及进程控制
  一、proc文件系统
  我们平时输入的命令:ifconfig,hostname,free(查看内存使用情况),df(查看硬盘使用情况),uname命令是从哪里得到的信息呢?
  答案就是proc!看一下:
  jerry@why :~$ cat /proc/version
  Linux version 3.2.0-23-generic-pae (buildd@palmer) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu4) ) #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012
  jerry@why :~$ uname -a
  Linux why 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux
  jerry@why :~$
  /proc/是内核的小窗户。

  二、日志系统
  位置:jerry@why :~$ ls /var/log/
  下面我用正则找出以。log结尾的日志文件:
  jerry@why :/var/log$ locate -r "^/var/log/[a-z]*\.log$"
  /var/log/alternatives.log
  /var/log/apport.log
  /var/log/auth.log
  /var/log/boot.log
  /var/log/bootstrap.log
  /var/log/dpkg.log
  /var/log/fontconfig.log
  /var/log/jockey.log
  /var/log/kern.log
  /var/log/mail.log
  /var/log/ufw.log
  jerry@why :/var/log$
  ------------------------------------------------
  进程
  top查看进程的信息,默认按照cpu占用排序,按M可以按内存占用大小排序。如果想杀掉一个进程呢,发送15号信号,也就是按k回车,如果杀不掉怎么办?可以强制杀掉,这时候发送9号信号(可能产生僵尸进程(不受控制的子进程))。
  看一个各个信号
  jerry@why:/var/log$ kill -l

  1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
  6) SIGABRT 7) SIGBUS SIGFPE 9) SIGKILL 10) SIGUSR1
  11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
  16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
  21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
  26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
  31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
  38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
  43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
  48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
  53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
  58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
  63) SIGRTMAX-1 64) SIGRTMAX
  jerry@why:/var/log$
  ps auxf(x另外还显示后台进程,没有的话只显示控制台进程)(f显示父子进程关系)
  kill 【 -9】 5671(给pid为5671的进程发送9号信号,也就是强杀进程)(kill是发送信号的传令兵,并不单单是杀掉进程)
  skill -9 root(把root的所有进程干掉)
  skill -9 jerry(jerry的所有进程)
  再来看一下进程的几种状态:
  S(sleeping)T(stop)R(running)D(deepsleeping(深度睡眠))Z(僵尸进程)
  还有一点小东西:
  jerry@why:~$ w
  11:04:03 up 1:47, 1 user, load average: 1.61, 1.70, 1.77
  USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
  jerry pts/1 :0 10:47 0.00s 0.35s 0.00s w
  jerry@why:~$
  w看有谁登录了这台电脑。
  skill -9 pts/1 就可以踢掉他啦!