Почему эта команда «kill» выводит меня из компьютера?


40

Следующая команда выводит меня из системы ( не запускайте эту команду):

kill -9 -1

Я не понимаю почему.

Может кто-то объяснить это мне?

Ответы:


71

Синтаксис есть kill SIGNAL PID.

В -9параметр указывает , что SIGKILLсигнал должен быть отправлен (немедленно прекратить целевой процесс (ов), а также с указанием PID -1является сокращение для «всех процессов , кроме себя и INIT».

Поскольку вы не используете sudo(и, по-видимому, не имеете корневых разрешений), это сразу же убивает все процессы, на которые у вас есть разрешение на удаление, - весь сеанс, следовательно, вы выходите из системы.


9
И обратите внимание, если вы выполните эту команду с sudo like, sudo kill -9 -1то компьютер перезагрузится
— Anwar

Это действительно перезапустит? Кажется, что это просто потерпит крах.
— user606723

@ user606723 процесс init не завершится и может решить, что (если что-то сделать) делать со всеми остальными процессами, завершившимися.
— Random832

3
@ Анвар, он не обязательно перезапустится, он заставит вас запустить только init, который может или не может порождать оболочку или запускать другие сервисы.
— mikebabcock

27

пытаться

man kill

чтобы получить объяснение команды kill ..

это говорит:

PID -1 является особенным; он указывает все процессы, кроме самого процесса kill и init.

а также

ПРИМЕРЫ

убить -9 -1

 Kill all processes you can kill.

Я надеюсь, вы понимаете, почему ваш компьютер выйдет из системы, когда вы завершите все процессы. Вы бросили все

Надеюсь это поможет.


18
+1 за указание на man. «Научите рыбу, как manи вы накормить его на всю жизнь». (Пун намеревался :-))
— m000

7

Вы даете в -1качестве идентификатора процесса: с killman-страницы:

 A  PID of -1 is special; it indicates all processes except the
 kill process itself and init.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.