Я не предлагаю делать следующее, если вас не принуждают действительно особые причины:
kill -SEGV 1 # should generate a core dumps and kernel panic
kill -ABRT 1 # should generate a core dumps and kernel panic
kill -9 1 # On old systems worked nowadays not
Это грубо, жестоко, и это можно считать близким эквивалентом отсоединения шнура питания ...
Правильный путь является shutdown -h now
с sudo
до того, когда это необходимо.
Может быть, я должен сказать законным путем ; смотрите ниже или лучше TL; Dr.
Еще несколько слов , история, глава I
В начале был инициат, и он будет до самого конца.
Весь Linux зависит от заботливого отношения к init [ 1 ] [ 2 ] . Тем не менее, и не без некоторой степени неблагодарности было время, когда добрый лорд- пользователь root мог предать эту любовь и внезапно kill
начать с неопровержимым ( -9
) порядком.
( Книга этикета предписывает пользователям графов, герцогов и маркизов вызывать до а sudo
).
Тогда некоторые волшебники сделали заклинание, чтобы защитить init (из Книги man 2 init
)
Единственные сигналы, которые могут быть отправлены процессу ID 1, процессу init, - это сигналы, для которых init явно установил обработчики сигналов. Это сделано для того, чтобы система не была случайно отключена.
(Наши шпионы сообщают [ U1 ], что init будет обрабатывать 1 HUP 6 ABRT 11 SEGV 15 TERM 30 PWR 2 INT 10 USR1 14 ALRM 17 CHLD 32)
Таким образом, добрый лорд- пользователь root узнает новости и меняет команду kill -ABRT 1
или kill -SEGV 1
обычно генерирует паника ядра и дамп ядра.
Это работает, потому что init является первым процессом, который запускается и получает PID номер 1 [ 2b ] .
Это небезопасно, неразумно, и вы чувствуете, что это предвестник дурного предзнаменования и проклятия, но если вы не можете материально возложить руки и отсоединить его ...
Проклятие : он не будет записывать в журнал, он не будет убивать все процессы и ждать их окончания, он не будет записывать на жесткий диск правильное обновление inode и не будет размонтировать файловые системы; даже не возражайте, это сохранит опции графических окон и истории оболочек, и многие другие за пределами нашего воображения ... как мы сказали, близкий эквивалент отключения сетевого шнура или аккумулятора, если ноутбук.
Правильный путь
"Non nobis, Domine, non nobis, sed nomini tuo da gloriam.", Девиз тамплиеров. Законный (правильный) способ заключается в использовании [ 3 ]
shutdown
sudo shutdown -h now
завершение работы обеспечивает безопасное отключение системы. Все зарегистрированные пользователи уведомляются о том, что система выходит из строя и ...
но у -h now
них не будет достаточно времени, чтобы сделать так много ...
Еще несколько слов , ака История, Глава II
Однажды с неба над людьми из Unix чувствовались логические шаги:
После того, как системные процессы были убиты, а файловые системы были размонтированы, система останавливается / выключается или автоматически перезагружается. Это делается с помощью команды останова или перезагрузки, которая синхронизирует изменения на дисках, а затем выполняет фактическое отключение / выключение питания или перезагрузку. [ 4 ]
Действительно, в настоящее время, мы не верим больше в существование трех Мойры [ 5 ] в мире Linux , reboot
, poweroff
и halt
[ 6 ] : современная наука о ls -l $(which poweroff halt reboot)
и один из man reboot
спреды новый свет на этот темный век и показать нам что существует только одна истинная команда, которая анализирует все их параметры, так что мы наконец можем запросить действия, противоречащие именам их команд! ( halt -p
или reboot -p
для poweroff
, shutdown -r
для reboot
...)
Теперь, когда все казалось ясным и уютным для всех, слухи утверждают , [ 7 ] , что в преступном мире в Systemd набор инструментов [ 8 ] революция была выполнена оставив не знают всю надземным . Благодаря армии прокладок обратной совместимости мы вообще не заметили, что перезагрузка, poweroff, halt [ 6 ] и даже telinit [ 9 ] и shutdown [ 3 ] уже привязаны к новому королю systemctl [ 10 ], Пожалуйста, слушайте всю историю от оригинального голоса JdeBP The Bard [ 9 ], потому что у меня больше нет дыхания.
Если вы являетесь последователями культа Ubuntu, вы все еще можете некоторое время осознавать все эти утверждения [ 11 ] .
Средняя Земля halt -f
, init
, telinit
, systemctl
Поиск решения быстрее , чем правильные один , но также мудрый.
systemctl --force --force poweroff # the most close to kill -9 1
systemctl --force poweroff # rough but still safe
sudo halt -f # rough
sudo telinit 0 # or 6 # safe
kill -SIGINT 1 # cause reboot as the reboot command
kill -SIGRTMIN+4 1 # cause shutdown as the halt command
То, что вы находитесь под systemd или нет, вы сможете остановить компьютер, не вызывая все правильные процедуры удаления (и так быстрее):
halt -f
: указание опции-f
(обратите внимание, что вам нужно -f
избегать процедуры выключения) с помощью вышеуказанной команды, с помощью sudo poweroff -f
или, может быть, даже с sudo reboot -f -h
. Действительно, мы можем прочитать man reboot
(и эквиваленты) о необходимости указать опцию, -f
чтобы избежать вызова завершения работы:
При вызове с параметром --force или на уровне выполнения 0 или 6 этот инструмент вызывает сам системный вызов reboot (2) (с переданным аргументом REBOOTCOMMAND) и непосредственно перезагружает систему .
В противном случае это просто вызывает инструмент shutdown (8) с соответствующими аргументами без передачи аргумента REBOOTCOMMAND.
-f, --force
Не вызывает shutdown (8) и вместо этого выполняет фактическое действие, которое вы ожидаете от имени .
Кроме того, вы можете использовать telinit
[ 2b ] (или init
напрямую)
sudo telinit 0 # or 6
сказать init изменить уровень запуска ... но если так, почему бы не убить его напрямую?
В systemd вы можете использовать опцию unwise double --force --force
systemctl --force --force poweroff
Чтение из руководства systemctl [ 10 ]
-f, --force
При использовании с enable перезаписать любые существующие конфликтующие символические ссылки.
При использовании halt
, poweroff
,reboot
или Kexec, выполнить выбранную операцию без отключения всех устройств. Однако все процессы будут принудительно убиты, а все файловые системы отключены или перемонтированы только для чтения. Следовательно, это радикальный, но относительно безопасный вариант запроса немедленной перезагрузки. Если --force указан дважды для этих операций, они будут выполнены немедленно, без остановки каких-либо процессов или размонтирования файловых систем. Предупреждение: указание --force дважды для любой из этих операций может привести к потере данных.
Ps> Вдохновитесь вариантами из хвоста JdeBP The Bard [ 7 ] .