2009年7月21日星期二

Linux笔记之进程二

一、信号

信号是进程级别的中断请求。大概有30种左右,主要使用方法如下:

*可以作为进程之间的通信

*可以通过终端发送来杀死,中断,挂起进程,<Ctrl-C>&<Ctrl-Z>

*可以使用终端命令kill发送杀死进程

*当进程产生违规操作时,由内核发出。

*当子进程死亡或者IO通道上有可利用的数据。



收到信号可能会发生两种事情:1)如果收到信号的进程有处理信号的机制,就被预定的程序处理(C里面就有<signal.h>头文件处理)。2)内核代表进程做一些默认的操作。

程序可以通过忽略或者阻塞信号防止。忽略的信号就直接消失了,但是阻塞的信号会入队等候处理。不管你阻塞了多少信号,显式取消阻塞后只能调用一次信号。



#      Name      Description            Default      Can catch?       Can block?

1      HUP           Hangup                Terminate               Y                         Y   

2      INT             Interrupt              Terminate              Y                         Y

3      QUIT          Quit                        Terminate             Y                         Y

9      KILL           Kill                          Terminate             N                         N

a      BUS        Bus error                   Terminate             Y                         Y

11     SEGV      Segmentation error     Terminate        Y                         Y

15     TERM      Software termination   Terminate      Y                         Y

a      STOP        Stop                             Stop                  N                         N

a      TSTP      Keyboard stop                 Stop                 Y                         Y

a      CONT    Continue after stop       Ignore                Y                        N

a      WINCH    Window changed           Ignore               Y                         Y

a      USR1     User-defined            Terminate                Y                        Y

a      USR2     User-defined            Terminate                Y                        Y



#a 根据硬件架构会不同



二、Kill指令

kill [-signal] pid

kill pid(可以被忽略获取,忽略,阻塞)

kill -KILL pid (保证杀死进程)



三、进程状态

runnable 进程正在运行

sleeping 进程正在等待资源

zombie   进程快死了

stopped  进程被挂起



四、nice&renice参数

nice表示这个进程有多少nice[-20,+19],越nice说明进程的运行优先级越低。



五、ps进程监测

ps [aux/lax]



六、top高级进程监测

ps只能监测一个瞬间,top可以持续的监测系统。使用时按q键,可以选择监视参数。



Creative Commons License

This work is licensed under a Creative Commons Attribution 3.0 Unported License.

没有评论:

发表评论