Чому ця команда "убивати" виводить мене з комп'ютера?


40

Наступна команда видає мене ( не виконувати цю команду):

kill -9 -1

Я не розумію, чому.

Може хтось мені це пояснить?

Відповіді:


71

Синтаксис є kill SIGNAL PID.

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

Оскільки ви не використовуєте sudo(і, мабуть, не маєте кореневих дозволів), це негайно вбиває всі процеси, на які ви маєте дозвіл вбити - весь ваш сеанс, отже, виходите з системи.


9
І зауважте, якщо ви запускаєте цю команду як sudo, sudo kill -9 -1тоді комп'ютер перезапуститься
Anwar

Він дійсно перезапуститься? Здається, це просто зірветься.
user606723

@ user606723 процес init не завершиться, і він може вирішити, що (якщо що-небудь робити) щодо всіх інших процесів, що закінчилися.
Випадково832

3
@Anwar не обов'язково перезавантажиться, це переведе вас на запуску просто ініціалу, що може, а може і не, потім породить оболонку або відновити інші сервіси.
mikebabcock

27

спробуйте

man kill

щоб отримати пояснення команди kill ...

він говорить:

PID -1 є спеціальним; він вказує на всі процеси, крім самого процесу вбити та 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.