Câu hỏi của bạn không rõ ràng, bạn nói về một daemon trong tiêu đề, nhưng trong cơ thể chỉ nói về một quá trình chung.
Đối với một daemon, có các phương tiện cụ thể để ngăn chặn nó, ví dụ như trong Debian bạn có
service daemon-name stop
hoặc là
/etc/init.d/daemon-name stop
Các cú pháp tương tự tồn tại cho các tiêu chuẩn initscript khác được sử dụng trong các bản phân phối / HĐH khác.
Để tiêu diệt một quá trình không phải daemon, giả sử nó nằm ngoài tầm kiểm soát, bạn có thể sử dụng một cách an toàn killall
hoặc pkill
, mặc định rằng chúng sử dụng SIGTERM
tín hiệu (15) theo mặc định , và bất kỳ ứng dụng bằng văn bản nào cũng nên nắm bắt và thoát ra một cách duyên dáng khi nhận được tín hiệu này . Hãy xem xét rằng các tiện ích này có thể giết chết nhiều hơn một quy trình, nếu có nhiều tiện ích có cùng tên.
Nếu điều đó không hiệu quả, bạn có thể thử SIGINT
(2), sau đó SIGHUP
(1) và như là phương sách cuối cùng SIGKILL
(9). Tín hiệu cuối cùng này không thể được bắt bởi ứng dụng, do đó nó không thể thực hiện bất kỳ việc dọn dẹp nào. Vì lý do này, nó nên được tránh mỗi khi bạn có thể.
Cả hai pkill
và killall
chấp nhận một tham số tín hiệu ở dạng -NAME
, như trong
pkill -INT process-name