Спочатку killкоманда могла вбити процес лише, лише згодом була killвдосконалена, щоб дозволити надсилати будь-який сигнал.
Починаючи з версії 7 Unix (1979), за замовчуванням було подано сигнал про процес, який можна зловити і обробляти витончено або ігнорувати (надсилаючи сигнал SIGTERM ), але його також можна використовувати для витягування килима з-під процес ( kill -9посилає сигнал SIGKILL, який неможливо зловити і, отже, не можна ігнорувати).
Фон
Обчислювальна техніка, зокрема Unix, рясніє метафорою.
Основна метафора процесів - жива істота, яка народжується, живе і вмирає.
У Unix всі процеси, крім init, мають батьків , і будь-який процес, який породжує інші процеси, має діти . Процеси можуть стати осиротілими (якщо їхній батько помирає) і навіть можуть стати зомбі , якщо вони зависнуть після смерті.
Таким чином, killкоманда вписується в цю метафору.
Археологія Unix
На сторінці керівництва з версії 4 Unix (версія, де 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команда вже була перевантажена, щоб дозволяти надсилати будь-який сигнал.
З посібника програмістів Unix, П'яте видання (p70):
If a signal number preceded by "-" is given
as an argument, that signal is sent instead of
kill (see signal (II)).
Хоча за замовчуванням було надіслати сигнал 9, оскільки сигнал 15 ще не існував (див. P150).
Чи не з 6 -ємо версіїkill сторінки людей більше не згадується в тому ж машинці помилку.
Лише з версією 7 Unix було введено сигнал 15 (див. Див. Сигнал (2) та убий (1) man сторінки для v7) і killперейшов на це, а не використовуючи сигнал 9.