kill (Unix)

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm

Trong tin học, killlệnh trong một số hệ điều hành phổ biến dùng để gửi tín hiệu tới một tiến trình đang chạy, ví dụ yêu cầu kết thúc tiến trình đó.

Thực thi[sửa | sửa mã nguồn]

Trong Unix và các hệ điều hành giống Unix[sửa | sửa mã nguồn]

Trong Unix và các hệ điều hành giống Unix, kill là lệnh dùng để gửi tín hiệu tới một tiến trình. Chương trình mặc định gửi đi tín hiệu kết thúc, yêu cầu thoát tiến trình. Nghĩa của từ kill (giết) có thể gây hiểu lầm: tín hiệu được gửi có thể không có vai trò gì trong việc hủy tiến trình. Lệnh kill là một hàm bao [[lời gọi hệ Trong tin học, killlệnh trong một số hệ điều hành phổ biến dùng để gửi tín hiệu tới một tiến trình đang chạy, ví dụ yêu cầu kết thúc tiến trình đó.

Thực thi[sửa | sửa mã nguồn]

Trong Unix và các hệ điều hành giống Unix[sửa | sửa mã nguồn]

Trong Unix và các hệ điều hành giống Unix, kill là lệnh dùng để gửi tín hiệu tới một tiến trình. Chương trình mặc định gửi đi tín hiệu kết thúc, yêu cầu thoát tiến trình. Nghĩa của từ kill (giết) có thể gây hiểu lầm: tín hiệu được gửi có thể không có vai trò gì trong việc hủy tiến trình. Lệnh kill là một hàm bao lời gọi điều hành]] exit, một lời gọi dùng để gửi tín hiệu tới tiến trình hoặc nhóm tiến trình trong hệ thống, tham chiếu tới ID tiến trình (PID) hay ID nhóm tiến trình (PGID). kill thường được cung cấp như một tiến trình riêng biệt theo chuẩn POSIX. Dù vậy, hầu hết các trình bao đều có sẵn lệnh kill với chức năng hơi khác một chút.

Có nhiều tín hiệu khác nhau có thể gửi đi bằng lệnh kill, mặc dù tín hiệu mà người dùng hay sử dụng nhất là SIGTERMSIGKILL. Chương trình nhận được tín hiệu hủy mặc định SIGTERM có thể thực hiện vài thao tác như lưu lại cấu hình trước khi thoát chwowng trình. Tuy nhiên không phải chương trình nào cũng được cài đặt chức năng xử lý tín hiệu này, khi đó bộ xử lý tín hiệu mặc định sẽ được gọi. Trong vài trường hợp, bộ xử lý đặc biệt của tiến trình có thể thất bại trong việc xử lý tín hiệu.

Tất cả các tín hiệu trừ SIGKILLSIGSTOP đều có thể bị "chặn" bởi tiến trình, nghĩa là một hàm đặc biệt được gọi khi chương trình nhận được tín hiệu. Chỉ có nhân hệ điều hành mới có thể xử lý hai tín hiệu SIGKILL và SIGSTOP, qua đó quản lý việc thực thi của các tiến trình. SIGKILL hủy tiến trình, và SIGSTOP tạm dừng tiến trình đến khi nhận được tín hiệu SIGCONT.

Unix cung cấp các cơ chế bảo mật ngăn cấm những người dùng chưa xác minh hủy đi tiến trình thuộc về người dùng khác. Khi một tiến trình gửi đi tín hiệu tới một tiến trình khác, chúng phải có chung chủ sở hữu hoặc tiến trình gửi tín hiệu phải thuộc về siêu người dùng.

Các tín hiệu sẵn có đều có các tên khác nhau, và được ánh xạ tới một số làm địa chỉ. Chú ý là bảng ánh xạ có thể khác nhau trong các bản cài đặt Unix. SIGTERM thường giữ số 15 và SIGKILL là 9.

Ví dụ[sửa | sửa mã nguồn]

Ví dụ[sửa | sửa mã nguồn]

Để hủy tất cả các thực thể của troff, gõ:

kill troff | rc

Tham khảo[sửa | sửa mã nguồn]

Liên kết ngoài[sửa | sửa mã nguồn]