<Trước | Nội dung | Tiếp theo>
Gửi tín hiệu để xử lý có kill
giết lệnh được sử dụng để gửi tín hiệu đến các chương trình. Cú pháp phổ biến nhất của nó trông giống như sau:
giết chết [-tín hiệu] PID ...
giết chết [-tín hiệu] PID ...
Nếu không có tín hiệu nào được chỉ định trên dòng lệnh, thì HẠN Tín hiệu (Kết thúc) được gửi theo mặc định. Các giết lệnh thường được sử dụng nhất để gửi các tín hiệu sau:
Bảng 10-4: Các tín hiệu chung
Con số | Họ tên | Ý nghĩa |
1 | HÚT | Treo lên. Đây là dấu tích của những ngày xa xưa khi thiết bị đầu cuối được gắn với điều khiển từ xa |
máy tính với đường dây điện thoại và modem. Tín hiệu được sử dụng để báo cho các chương trình biết rằng thiết bị đầu cuối điều khiển đã “treo”. Hiệu ứng của tín hiệu này có thể được chứng minh bằng cách đóng một phiên đầu cuối. Chương trình nền trước đang chạy trên thiết bị đầu cuối sẽ được gửi tín hiệu và sẽ kết thúc. | ||
Tín hiệu này cũng được sử dụng bởi nhiều chương trình daemon để khởi động lại. Điều này có nghĩa là khi một daemon được gửi tín hiệu này, nó sẽ khởi động lại và đọc lại tệp cấu hình của nó. Máy chủ web Apache là một ví dụ về daemon sử dụng HÚT tín hiệu theo cách này. | ||
2 | INT | Ngắt. Thực hiện chức năng tương tự như Ctrl-c được gửi từ thiết bị đầu cuối. Nó thường sẽ kết thúc một chương trình. |
9 | KILL | Giết chết. Tín hiệu này là đặc biệt. Trong khi các chương trình có thể chọn xử lý các tín hiệu được gửi đến chúng theo những cách khác nhau, bao gồm cả việc bỏ qua tất cả cùng nhau, KILL tín hiệu không bao giờ thực sự được gửi đến chương trình mục tiêu. Thay vào đó, hạt nhân ngay lập tức kết thúc quá trình. Khi một quá trình bị kết thúc theo cách này, nó sẽ không có cơ hội để “dọn dẹp” sau chính nó hoặc lưu công việc của nó. Vì lý do này, KILL tín hiệu chỉ nên được sử dụng như một phương sách cuối cùng khi các tín hiệu kết thúc khác không thành công. |
15 | HẠN | Chấm dứt. Đây là tín hiệu mặc định được gửi bởi giết chỉ huy. Nếu một chương trình vẫn đủ “sống” để nhận tín hiệu, chương trình đó sẽ kết thúc. |
18 | LIÊN HỆ | Tiếp tục. Điều này sẽ khôi phục một quy trình sau khi DỪNG tín hiệu. |
19 | DỪNG | Ngừng lại. Tín hiệu này khiến quá trình tạm dừng mà không kết thúc. Giống như KILL tín hiệu, nó không được gửi đến tiến trình đích, và do đó nó không thể bị bỏ qua. |
Hãy thử giết chỉ huy:
[tôi @ linuxbox ~] $ xlogo &
[1] 13546
[tôi @ linuxbox ~] $ kill -1 13546
[1] + Hangup xlogo
[tôi @ linuxbox ~] $ xlogo &
[1] 13546
[tôi @ linuxbox ~] $ kill -1 13546
[1] + Hangup xlogo
Trong ví dụ này, chúng tôi bắt đầu xlogo chương trình trong nền và sau đó gửi nó HÚT tín hiệu với giết. Các xlogo chương trình kết thúc và trình bao chỉ ra rằng quá trình nền đã nhận được tín hiệu gác máy. Chúng ta có thể cần nhấn phím enter nhiều lần trước khi thông báo xuất hiện. Lưu ý rằng các tín hiệu có thể được chỉ định bằng số hoặc theo tên, bao gồm cả tên có tiền tố là các chữ cái “SIG”:
[tôi @ linuxbox ~] $ xlogo &
[1] 13601
[tôi @ linuxbox ~] $ giết -INT 13601 [1] + Ngắt xlogo [me @ linuxbox ~] $ xlogo &
[1] 13608
[tôi @ linuxbox ~] $ giết -SIGINT 13608
[1] + Xlogo ngắt quãng
[tôi @ linuxbox ~] $ xlogo &
[1] 13601
[tôi @ linuxbox ~] $ giết -INT 13601 [1] + Ngắt xlogo [me @ linuxbox ~] $ xlogo &
[1] 13608
[tôi @ linuxbox ~] $ giết -SIGINT 13608
[1] + Xlogo ngắt quãng
Lặp lại ví dụ trên và thử các tín hiệu khác. Hãy nhớ rằng, chúng ta cũng có thể sử dụng thông số công việc thay cho PID.
Các quá trình, như tệp, có chủ sở hữu và bạn phải là chủ sở hữu của một quá trình (hoặc người dùng cấp trên) để gửi tín hiệu cho nó bằng giết.
Ngoài danh sách các tín hiệu ở trên, các tín hiệu thường được sử dụng nhất với giết, có các tín hiệu khác được hệ thống sử dụng thường xuyên. Dưới đây là danh sách các tín hiệu phổ biến khác:
Bảng 10-5: Các tín hiệu chung khác
Con số | Họ tên | Ý nghĩa |
3 | QUIT | Bỏ đi. |
11 | SEGV | Vi phạm phân đoạn. Tín hiệu này được gửi đi nếu một chương trình sử dụng bất hợp pháp bộ nhớ, tức là nó đã cố gắng ghi vào nơi nào đó mà nó không được phép. |
20 | TSTP. | Trạm dừng đầu cuối. Đây là tín hiệu được gửi bởi thiết bị đầu cuối khi Ctrl-z phím được nhấn. Không giống như DỪNG tín hiệu, TSTP. tín hiệu được nhận bởi |
chương trình nhưng chương trình có thể chọn bỏ qua nó.
28 Thay đổi cửa sổ WINCH. Đây là tín hiệu được gửi bởi
hệ thống khi một cửa sổ thay đổi kích thước. Một số chương trình, như hàng đầu và ít sẽ phản hồi lại tín hiệu này bằng cách tự vẽ lại để vừa với kích thước cửa sổ mới.
Đối với những người tò mò, một danh sách đầy đủ các tín hiệu có thể được nhìn thấy bằng lệnh sau:
[me @ linuxbox ~] $ kill -l
[me @ linuxbox ~] $ kill -l
<Trước | Nội dung | Tiếp theo>