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

40

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

kill -9 -1

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

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

hytromo
источник

Ответы:

71

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

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

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

chronitis
источник
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.

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

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

mondjunge
источник
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.
Том Регнер
источник