实际上,信号的最初目的是杀死目标进程。kill
出现在Unix第三版 ; 当时,它是保留给root用户的,该过程被强制终止(例如今天的SIGKILL)并留下了核心转储。
Unix第4版增加了信号编号参数,以及signal
用于设置信号处理程序的伴随系统调用。当时,除非目标进程调用,否则所有信号都会杀死目标进程ignore
。
随着时间的流逝,越来越多的信号出现了,其中一些信号默认不会终止目标进程。但是名字仍然存在。
该POSIX委员会讨论重命名kill
,因为当你注意不是所有信号都旨在终止目标进程,但是这是根深蒂固的那点历史使用,所以改变它会比没有更多的混乱。