Đôi khi, khi tôi đang chạy một killalllệ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 -HUPlàm gì?
Đôi khi, khi tôi đang chạy một killalllệ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 -HUPlàm gì?
Câu trả lời:
Các -HUPtùy chọn là tín hiệu được gửi đến các quá trình của các killalllệnh. Có thể hơi khó để nói, nhưng mục có liên quan trong killallhướ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 TERMtín hiệu mặc định killallgửi và HUPtí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 TERMtí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 KILLtín hiệu). Chương trình là miễn phí để bắt và bỏ qua TERMtí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 HUPtí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 HUPvà 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 HUPtí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 KILLtí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 .
#FAILngười không bao giờ đọc qua các thiết bị chuyển mạch. Cảm ơn bạn!
Các -HUPlà 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ó -HUPchứ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.