Linux系统中常用信号:
(1)SIGHUP:用户从终端注销,所有已启动进程都将收到该进程。系统缺省状态下对该信号的处理是终止进程。
(2)SIGINT:程序终止信号。程序运行过程中,按Ctrl+C键将产生该信号。
(3)SIGQUIT:程序退出信号。程序运行过程中,按Ctrl+\键将产生该信号。
(4)SIGBUS和SIGSEGV:进程访问非法地址。
(5)SIGFPE:运算中出现致命错误,如除零操作、数据溢出等。
(6)SIGKILL:用户终止进程执行信号。shell下执行kill -9发送该信号。
(7)SIGTERM:结束进程信号。shell下执行kill 进程pid发送该信号。
(8)SIGALRM:定时器信号。
(9)SIGCLD:子进程退出信号。如果其父进程没有忽略该信号也没有处理该信号,则子进程退出后将形成僵尸进程。
(10) USR1: 被用来告知应用程序重载配置文件
  
INT(快速关闭)----是当用户键入时由终端驱动程序发送的信号。这是一个终止当前操作的请求,如果捕获了这个信号,一些简单的程序应该退出,或者允许自给被终止,这也是程序没有捕获到这个信号时的默认处理方法。拥有命令行或者输入模式的那些程序应该停止它们在做的事情,清除状态,并等待用户的再次输入。

    TERM(快速关闭)----是请求彻底终止某项执行操作,它期望接收进程清除自给的状态并退出。

    HUP---- 平滑启动,重新加载配置文件。
    有两种解释:

    1:他被许多守护进程理解为一个重新设置的请求。如果一个进程不用重新启动就能重新读取它的配置文件并调整自给以适应变化的话,那么HUP通常来触发这种行为。
    2:HUP信号有时候又终端驱动程序生成,试图来"清除"("终止")跟某个特定终端相连的那些进程。例如:某个终端会话结束时,或者当调制解调器被挂断时,shell后台不接受HUP的信号的影响,有的用户可以使用nohup来模仿这种行为。
QUIT:从容关闭。

kill [-s signal] pid...
kill [-signal] pid...
kill -l

pkill [-signal] [-v] [-P ppid,...] [-s pid,...][-U uid,...] [-t term,...] [pattern]
选项说明:
-P ppid,... :匹配PPID为指定值的进程
-s pid,... :匹配PID为指定值的进程
-U uid,... :匹配UID为指定值的进程,可以使用数值UID,也可以使用用户名称
-t term,... :匹配给定终端,终端名称不能带上"/dev/"前缀,其实"w"命令获得终端名就满足此处条件了,所以pkill可以直接杀掉整个终端
-v :反向匹配
-signal :指定发送的信号,可以是数值也可以是字符代表的信号
-f :默认情况下,pgrep/pkill只会匹配进程名。使用-f将匹配命令行

Killall [-r,--regexp] [-s,--signal signal] [-u,--user user] [-v,--verbose] [-w,--wait] [-I,--ignore-case] [--] name ...
选项说明:
-I :匹配时不区分大小写
-r :使用扩展正则表达式进行模式匹配
-s, --signal :发送信号的方式可以是-HUP或-SIGHUP,或数值的"-1",或使用"-s"选项指定信号
-u, --user :匹配该用户的进程
-v, :给出详细信息
-w, --wait :等待直到该杀的进程完全死透了才返回。默认killall每秒检查一次该杀的进程是否还存在,只有不存在了才会给出退出状态码。
如果一个进程忽略了发送的信号、信号未产生效果、或者是僵尸进程将永久等待下去