Я не пропоную робити наступне, якщо вас не змушують дійсно особливі причини:
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
На початку була init, і це буде до самого кінця.
Весь Linux залежить від люблячої турботи про init [ 1 ] [ 2 ] . Незважаючи на це і не без певної кількості невдячності, був час, коли добрий користувач корінних ресурсів Господа може зрадити цю любов і раптом kill
порушити її з непорушним ( -9
) порядком.
( Книга Етикету призначає графам, герцогам та маркізам, щоб користувачі зверталися до а sudo
).
Тоді деякі чарівники зробили шарм для захисту ініта (із Книги man 2 init
)
Єдиними сигналами, які можуть бути надіслані до ідентифікатора обробки 1, процесу init, є ті, для яких init явно встановив обробники сигналів. Це робиться для того, щоб система не була зруйнована випадково.
(Наші розвідники повідомляють [ U1 ] , що INIT буде обробляти 1 HUP 6 ABRT 11 SEGV 15 TERM 30 PWR 2 INT 10 USR1 14 ALRM 17 CHLD 32)
Таким чином , в хорошому Lord суперкористувача дізнатися новини і змінити команду kill -ABRT 1
або kill -SEGV 1
що зазвичай генерують ядра паніки та ядра скидання.
Це працює, тому що init є першим запущеним процесом і приймає PID номер 1 [ 2b ] .
Це небезпечно, нерозумно, і ви вважаєте, що це вісник поганої прикмети та прокляття, але якщо ви не можете матеріально покласти руки та відключити її від мережі ...
Прокляття : воно не запише в журнал, воно не вб'є всі процеси і не чекатиме їх закінчення, не буде писати на жорсткому диску належним чином оновлення вкладок, а також не відключить файлові системи; навіть не заперечуйте, що це збереже параметри графічних вікон та історій оболонок, а також багатьох інших за межами нашої уяви ... як ми говорили, близький еквівалент відключення шнура живлення або батареї, якщо ноутбук.
Правильний шлях
"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 ] революція була виконана залишивши не знають всю надземним . Завдяки армії зворотних можливостей сумісності ми зовсім не помітили, що перезавантаження, переключення, зупинка [ 6 ] і навіть telinit [ 9 ] та вимкнення [ 3 ] вже обмежені до нового king 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
Якщо ви знаходитесь в системі чи ні, ви повинні мати змогу зупинити комп’ютер, не використовуючи всі правильні процедури shudown (і так швидше):
halt -f
: вказавши варіант-f
(зауважте, що вам потрібно -f
уникати процедури вимкнення) за допомогою вищевказаної команди, з sudo poweroff -f
або, можливо, навіть із sudo reboot -f -h
. Дійсно, ми можемо прочитати з man reboot
(та їх еквіваленти) про необхідність вказувати опцію, -f
щоб не викликати вимкнення:
При виклику з --force або при запуску рівня 0 або 6 цей інструмент викликає сам виклик перезавантаження (2) (з переданим аргументом REBOOTCOMMAND) і безпосередньо перезавантажує систему .
В іншому випадку це просто викликає інструмент shutdown (8) з відповідними аргументами, не передаючи аргумент REBOOTCOMMAND.
-f, --force
Не викликає відключення (8), а замість цього виконує дійсні дії, яких ви очікували б від імені .
Крім того, ви можете використовувати telinit
[ 2b ] (або init
безпосередньо)
sudo telinit 0 # or 6
сказати init, щоб змінити рівень запуску ... але якщо так, то чому б не вбити його безпосередньо?
Під systemd ви можете використовувати нерозумно подвійний варіант --force --force
systemctl --force --force poweroff
Читання з посібника systemctl [ 10 ]
-f, --force
При використанні з увімкненням перезаписуйте всі існуючі суперечливі посилання.
При використанні halt
, poweroff
,reboot
або Kexec, виконати обрану операцію без відключення всіх пристроїв. Однак усі процеси будуть вбиті насильно, а всі файлові системи відключені або перезавантажені лише для читання. Отже, це різкий, але відносно безпечний варіант вимагати негайного перезавантаження. Якщо --force вказано двічі для цих операцій, вони будуть виконуватися негайно, не припиняючи жодних процесів і не демонтуючи жодної файлової системи. Попередження: вказівка - примусово двічі з будь-якої з цих операцій може призвести до втрати даних.
Ps> Візьміть натхнення щодо варіантів із хвоста JdeBP The Bard [ 7 ] .