Tại sao lệnh 'kill' này đăng xuất tôi ra khỏi máy tính?


40

Lệnh sau chỉ cho tôi biết ( không chạy lệnh này):

kill -9 -1

Tôi không hiểu tại sao.

Ai đó có thể giải thích điều này với tôi?

Câu trả lời:


71

Cú pháp là kill SIGNAL PID.

Các -9quy định cụ thể tùy chọn mà các SIGKILLtín hiệu phải được gửi (ngay lập tức chấm dứt quá trình mục tiêu (es), và xác định PID -1là viết tắt cho "tất cả các quá trình ngoại trừ bản thân và init".

Vì bạn không sử dụng sudo(và có lẽ không có quyền root), điều này ngay lập tức giết chết tất cả các quy trình bạn có quyền giết - toàn bộ phiên của bạn, do đó đăng xuất bạn.


9
Và lưu ý, nếu bạn chạy lệnh này với sudo like sudo kill -9 -1thì máy tính sẽ khởi động lại
Anwar

Nó sẽ thực sự khởi động lại? Có vẻ như nó sẽ sụp đổ.
dùng606723

@ user606723 quá trình init sẽ không thoát và có thể quyết định những gì (nếu có) để làm gì với tất cả các quy trình khác đã thoát.
Random832

3
@Anwar nó không nhất thiết phải khởi động lại, nó sẽ đưa bạn chạy chỉ init, điều này có thể hoặc không thể sinh ra một vỏ hoặc mang lại các dịch vụ khác.
mikebabcock

27

thử

man kill

để có được một lời giải thích về lệnh kill ..

nó nói rằng:

Một PID của -1 là đặc biệt; nó chỉ ra tất cả các tiến trình ngoại trừ chính quá trình kill và init.

VÍ DỤ

giết -9 -1

 Kill all processes you can kill.

Tôi hy vọng bạn hiểu tại sao máy tính của bạn sẽ đăng xuất bạn, khi bạn kết thúc tất cả các quy trình. Bạn đã bỏ tất cả mọi thứ.

Hi vọng điêu nay co ich.


18
+1 để chỉ vào man. "Dạy một con cá làm thế nào manvà bạn nuôi nó cả đời." (Pun dự định :-))
m000

7

Bạn đang đưa ra -1dưới dạng id tiến trình: từ trang killman:

 A  PID of -1 is special; it indicates all processes except the
 kill process itself and init.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.