SIGKILL



















SIGKILL
描述
“杀死”信号
默认动作
进程异常终止
SA_SIGINFO宏





在POSIX兼容的平台上,SIGKILL是发送给一个进程来导致它立即终止的信号。SIGKILL的符号常量在头文件signal.h中定义。因为在不同平台上,信号数字可能变化,因此符号信号名被使用,然而在大量主要的系统上,SIGKILL是信号#9。[1]



语源


SIG是信号名的通用前缀。KILL是指让一个进程立即终止的动作的计算机行话。



使用


当SIGKILL被发送给一个程序时,它使程序立即终止。与SIGTERM和SIGINT相比,这个信号不能被捕获或忽略,同时接收这个信号的进程在收到这个信号时不能执行任何清理。



  • 僵尸进程不能被杀死,因为它们已经死亡,只等待它们的父进程回收它们。

  • 处于阻塞状态的进程不会死亡,直到它们再次醒来。


  • init进程是特殊的:它不获得它不想处理的信号,因此它可以忽略SIGKILL。

  • 因为SIGKILL不给进程任何在终止时做清理操作的机会,在大部分系统关闭过程中,在采取SIGKILL之前,使用信号SIGTERM使进程终止的尝试先被作出。

  • 为了加速计算机关闭过程,Mac OS X 10.6,也称为雪豹,会将SIGKILL发送给已经标记它们自己为“干净”的应用程序,以加快关机速度,同时,很可能地,没有坏作用。[2]

  • 即使SIGKILL被发送给它,一个正在不可中断睡眠英语Uninterruptible sleep的进程也可能不会终止(并且释放它的资源)。这是少数几个一个UNIX系统可能需要被重新启动来解决临时软件问题的例子中的一个。


参考





  1. ^ sourceware.org Git - glibc.git/blob - bits/signum.h. 2001-07-06 [2009-11-18]. [永久失效連結]


  2. ^ Mac Dev Center: What's New in Mac OS X: Mac OS X v10.6. 2009-08-28 [2009-11-18]. 






Popular posts from this blog

How to pass form data using jquery Ajax to insert data in database?

National Museum of Racing and Hall of Fame

Guess what letter conforming each word