Điểm:1

pkill không giết

lá cờ tm

Tôi đã cố gắng giết một tiến trình bằng cách sử dụng pkill -9 <pid>

Bất cứ khi nào tôi chạy lệnh đó, nó sẽ không trả về gì và quá trình này cũng không bị hủy.

Làm thế nào để tôi tiến hành bây giờ?

Chỉnh sửa:

Tôi thật ngu ngốc khi cố gắng sử dụng pkill với pid. pkill lấy tên của quá trình không phải pid. giết chết là lệnh lấy pid như được chỉ ra trong câu trả lời được chấp nhận.

Tuy nhiên, câu trả lời khác thực tế thực hiện tốt công việc giải thích khả năng pkill thực tế không giết chết và được viết rất hay.

pierrely avatar
lá cờ cn
killall thay thế -9 và có thể chạy như sudo. bạn cũng có thể nhận được "$(pidof )" khi bạn cần một số và bạn có thể nhận được một số (như Firefox và đó là cửa sổ trình quản lý tải xuống, thì bạn cần chuyển qua mảng từ pidof đó
Điểm:6
lá cờ bd

Nếu tôi nhớ chính xác (tôi không bao giờ sử dụng nó) thì pkill sử dụng tên quy trình chứ không phải PID. để sử dụng PID, hãy sử dụng kill thay vì pkill.

user10489 avatar
lá cờ in
Điểm tốt. Một quá trình sẽ không chết nếu bạn bỏ lỡ khi bạn cố giết nó. pkill thường chỉ tìm kiếm tên lệnh. pkill -a hoặc -f cũng tìm kiếm các đối số của lệnh, nhưng điều này nguy hiểm và có thể giết quá nhiều. Tôi khuyên bạn nên sử dụng pgrep trước pkill để xem liệu bạn có thực sự khớp với bất kỳ thứ gì không.
Điểm:4
lá cờ in

Có chính xác ba lý do tại sao kill -9 sẽ không giết một tiến trình. (Các trang của Old man đã dán nhãn điều này là "Giết người với định kiến ​​​​cực đoan". Một quá trình không thể tránh được -9, mà chỉ trì hoãn cái chết của nó.)

Bạn có thể kiểm tra quá trình với ps -O chỉ số -p 1234 Ví dụ. Kiểm tra cột trạng thái (S):

Ba lý do tại sao một quy trình không chết ngay lập tức từ -9 là:

  • Nó đã chết -- đó là một thây ma. (status=Z) Nó sẽ biến mất khi cha của nó đợi nó (và thu thập zombie) hoặc chính tiến trình mẹ chết.
  • Nó bị kẹt trong một thiết bị chờ đợi. (status=D) Cách duy nhất để tiêu diệt chúng là yêu cầu thiết bị giải phóng hoặc khởi động lại. Điều này có thể yêu cầu chờ đợi hoặc thao tác vật lý với thiết bị hoặc một số cách khác ngoài băng tần để "đá" thiết bị bị kẹt. (Và trong một số ít trường hợp, quá trình khởi động lại sẽ không thành công và bị treo, và bạn sẽ phải khởi động lại.)
  • Nó bị treo (trạng thái=T), trong trường hợp này, kill -9 sẽ giết nó, nhưng nó không thực sự chết cho đến khi quá trình được tiếp tục (kill -CONT)

Lệnh kill thực sự trả về một cái gì đó, mặc dù nếu nó thành công thì không in bất cứ điều gì. Tất cả các lệnh đều có giá trị trả về. Bạn có thể kiểm tra nó với tiếng vang $? ngay sau khi chạy lệnh. Nếu giá trị trả về là 0, thì quá trình hủy đã thành công và không có bản in nào. Bất kỳ giá trị nào khác là một lỗi và nó sẽ in ra lỗi; các lỗi có thể xảy ra có thể là Quyền bị từ chối (hoặc hoạt động không được phép) và Không có quy trình như vậy. pkill có một vài lỗi thú vị hơn một chút.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.