Đôi khi, khi tôi đang chạy một killall
lệnh từ Terminal, một đồng nghiệp sẽ đề xuất hoặc chỉnh sửa các tập lệnh của tôi để hiển thị killall -HUP
.
Phần này -HUP
làm gì?
Đôi khi, khi tôi đang chạy một killall
lệnh từ Terminal, một đồng nghiệp sẽ đề xuất hoặc chỉnh sửa các tập lệnh của tôi để hiển thị killall -HUP
.
Phần này -HUP
làm gì?
Câu trả lời:
Các -HUP
tùy chọn là tín hiệu được gửi đến các quá trình của các killall
lệnh. Có thể hơi khó để nói, nhưng mục có liên quan trong killall
hướng dẫn là:
-SIGNAL Send a different signal instead of the default TERM. The signal may be specified
either as a name (with or without a leading SIG), or numerically.
Sự khác biệt giữa TERM
tín hiệu mặc định killall
gửi và HUP
tín hiệu phụ thuộc phần lớn vào chương trình bạn đang gửi tín hiệu. Vào cuối chương trình, họ nhận được một giá trị tín hiệu ngắt khác nhau. Vì vậy, chương trình có thể bắt các ngắt và quyết định, dựa trên giá trị, nếu chúng nên làm cái này hay cái khác.
Các TERM
tín hiệu (lịch sử, "chấm dứt tín hiệu") thường được gửi đến một chương trình để yêu cầu chấm dứt của nó (đó là một phiên bản politer của buộc chấm dứt của nó với các KILL
tín hiệu). Chương trình là miễn phí để bắt và bỏ qua TERM
tín hiệu. Nó không phải chấm dứt nếu nó không muốn và nó hoàn toàn có thể bỏ qua tín hiệu này.
Các HUP
tín hiệu (lịch sử các "tín hiệu treo") thường được gửi đến một chương trình để yêu cầu mà nó khởi động lại và tái đọc tất cả các cấu hình của nó trong quá trình này. Hành vi thực tế của chương trình phụ thuộc vào việc thực hiện chương trình cụ thể. Không phải tất cả các chương trình bắt HUP
và chúng không bắt buộc theo quy ước hoặc giáo điều. Ví dụ, máy chủ web Apache sẽ bắt HUP
tín hiệu và đọc lại tất cả các tệp cấu hình của nó nhưng nó sẽ không khởi động lại bất kỳ quy trình nào.
Nếu bạn muốn thực sự chấm dứt các quá trình và không lo lắng về việc liệu chúng có bắt và tuân theo tín hiệu hay không sử dụng KILL
tín hiệu. Nó không thể bị bắt hoặc bỏ qua và dẫn đến kết thúc quá trình.
Để đánh giá tốt các tín hiệu POSIX có sẵn, hãy xem bài viết Wikipedia này .
#FAIL
người không bao giờ đọc qua các thiết bị chuyển mạch. Cảm ơn bạn!
Các -HUP
là tín hiệu "ngắt kết nối" có thể kích hoạt một ứng dụng để chấm dứt, đọc nó của tập tin cấu hình, và sau đó bắt đầu lại. Nó không nhất thiết phải tốt hơn so với việc sử dụng nó mà không có.
killall Finder
và
killall -HUP Finder
Được tôn trọng như nhau. Trong OS X Finder sẽ khởi chạy lại, nhưng nó sẽ đọc lại tệp cấu hình của nó. Điều này có thể không thực sự đúng nếu ứng dụng đang chạy không có -HUP
chức năng được tích hợp trong đó. Như các poster trước đã đề cập đến Apache. Nó đọc các tập tin cấu hình của nó, nhưng nó không thể khởi chạy lại.