Ban đầu, kill
lệnh chỉ có thể giết một tiến trình, chỉ sau đó được kill
tăng cường để cho phép bạn gửi bất kỳ tín hiệu nào.
Kể từ phiên bản 7 của Unix (1979), mặc định đã báo hiệu quá trình theo cách có thể bắt và xử lý một cách duyên dáng hoặc bỏ qua (bằng cách gửi tín hiệu SIGTERM ), nhưng nó cũng có thể được sử dụng để kéo tấm thảm ra từ bên dưới một quá trình (a kill -9
gửi tín hiệu SIGKILL không thể bắt được và do đó không thể bỏ qua).
Lý lịch
Máy tính và Unix nói riêng, đầy rẫy những ẩn dụ.
Ẩn dụ chính cho các quá trình là một sinh vật được sinh ra, sống và chết.
Trong Unix tất cả các quy trình ngoại trừ init đều có cha mẹ và bất kỳ quy trình nào sinh ra các quy trình khác đều có con . Quá trình có thể trở thành mồ côi (nếu cha mẹ của họ chết) và thậm chí có thể trở thành thây ma , nếu họ quanh quẩn sau khi chết.
Vì vậy, kill
lệnh phù hợp với ẩn dụ này.
Khảo cổ học Unix
Từ trang hướng dẫn từ phiên bản 4 của Unix (phiên bản kill
được giới thiệu cùng với ps
) chúng tôi tìm thấy:
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)
Tôi đặc biệt thích phần cuối cùng của trang người đàn ông này:
BUGS
Clearly people should only be allowed to kill
processes owned by them, and having the same typewriter
is neither necessary nor sufficient.
Vào thời điểm phiên bản thứ năm xuất hiện, kill
lệnh đã bị quá tải để cho phép bất kỳ tín hiệu nào được gửi.
Từ Hướng dẫn lập trình viên Unix, Phiên bản thứ năm (p70):
If a signal number preceded by "-" is given
as an argument, that signal is sent instead of
kill (see signal (II)).
Mặc định mặc định là gửi tín hiệu 9, vì tín hiệu 15 chưa tồn tại (xem p150).
Với phiên bản 6 , kill
trang man không còn đề cập đến lỗi máy đánh chữ tương tự .
Chỉ với phiên bản 7 của Unix, tín hiệu 15 đã được giới thiệu (xem phần tín hiệu (2) và giết (1) trang man cho v7) và kill
chuyển sang đó thay vì sử dụng tín hiệu 9.