원래 kill
명령은 프로세스 만 종료 할 수 있으며 나중에 kill
신호를 보낼 수 있도록 향상되었습니다.
Unix (1979) 7 버전부터 기본값은 프로세스를 포착 하고 정상적으로 처리하거나 무시할 수있는 방식으로 신호 를 보내는 것이 었지만 ( SIGTERM 신호 전송 ) 프로세스 (a kill -9
는 SIGKILL 신호를 보내서 잡을 수 없으므로 무시할 수 없음).
배경
컴퓨팅, 특히 유닉스는 은유로 가득하다.
프로세스 에 대한 주요 은유 는 태어나고 살고 죽는 생물의 메타포입니다 .
유닉스에서는 init를 제외한 모든 프로세스 는 부모 를 가지며, 다른 프로세스를 생성 하는 프로세스는 자식을 가진다 . 프로세스가 고아 가 될 수 있고 (부모가 사망 한 경우) 사망 후 걸어 다니면 좀비 가 될 수 있습니다 .
따라서이 kill
명령은이 은유에 적합합니다.
유닉스 고고학
로부터 매뉴얼 페이지 유닉스 (버전의 버전 4에서 kill
와 함께 소개 된 ps
우리가 찾을 수) :
NAME
kill - do in an unwanted process
SYNOPSIS
kill processid ...
DESCRIPTION
Kills the specified processes.
The processid of each asynchronous process
started with `&' is reported by the shell.
Processid's can also be found by using ps (I).
The killed process must have
been started from the same typewriter
as the current user, unless
he is the superuser.
SEE ALSO
ps(I), sh(I)
이 매뉴얼 페이지의 마지막 섹션이 특히 마음에 듭니다.
BUGS
Clearly people should only be allowed to kill
processes owned by them, and having the same typewriter
is neither necessary nor sufficient.
다섯 번째 판이 나올 무렵에는 kill
명령이 이미 과부하되어 신호를 보낼 수있었습니다.
로부터 유닉스 프로그래머 매뉴얼, 5 판 (P70) :
If a signal number preceded by "-" is given
as an argument, that signal is sent instead of
kill (see signal (II)).
신호 15는 아직 존재하지 않기 때문에 기본값은 신호 9를 전송하는 것이 었습니다 (p150 참조).
로 버전 6kill
맨 페이지 더 이상 언급되지 같은 타자기 버그.
신호 15가 도입되고 ( v7 의 signal (2) 및 kill (1) 매뉴얼 페이지 참조) kill
신호 9를 사용하지 않고 해당 버전으로 전환 한 것은 유닉스 버전 7에서만 가능했습니다 .