Чи можна зупинити команду відключення?


23

Якщо припустити, що ви щойно ввели команду shutdown -h now(чи щось еквівалентне), чи реально ви можете щось зробити (якщо ви досить швидкі), щоб запобігти вимиканню машини?


Після виклику shutdown -h now, я вважаю, що ви втрачаєте доступ до командного рядка негайно аналогічно halt -pтому, що ви не можете зробити багато.
Кен

@Ken: у Ubuntu та Centos, підключених через putty, командний рядок залишається доступним на кілька секунд.

Навіщо говорити "зараз", якщо ви не маєте на увазі "прямо зараз"?
Фред Нурк

Відповіді:


22

Можна скачати, shutdown -cщоб скасувати вже запущене відключення.


1
Спочатку не повірили, але так. Більш конкретноctrl+c
Кен

2
@Ken: shutdown -c та [Ctrl] + [c] абсолютно різні. shutdown -c - це команда, яка скасовує попередньо заплановане відключення (навіть "зараз" заплановане в цьому сенсі ---, але чи скасування перешкоджатиме перезавантаженню - це трохи гонка в цьому випадку). [Ctrl] + [c] призведе до того, що у вас термінал генерує SIGINT (сигнал переривання) до того процесу, який би в даний момент був приєднаний до нього. Це може працювати над запущеною командою відключення, але це досить випадково у вашому питанні.
Джим Денніс

1
@Jim Dennis: Я знаю різницю між ctrc+cта shutdown -c. Але враховуючи швидкість -now вибору, а не запланований брат, це ctrl+cбув би найшвидший шлях до цієї мети. Я не вірив, що ти можеш зупинити постійне відключення, ще більше здивований, що ти можеш перервати це, але, мабуть, можеш, але це гонка, як ти заявив.
Кен

13

Якщо ви досить швидкі, ви можете оформити init 2(або будь-який рівень запуску, який ви хочете), і це, ймовірно, зупинить зупинку. Все, що пов’язане із вбивством команди відключення, не вдасться, оскільки команда запускається занадто швидко

Я спробував це зі сценарієм нижче, і навіть це не досить швидко, щоб зупинити відключення

#!/bin/bash
shutdown -h now
shutdown -c "Aborting Shutdown"

Broadcast message from iain@iain-ubuntu
        (/dev/pts/0) at 16:50 ...

The system is going down for halt NOW!
shutdown: Cannot find pid of running shutdown

Де як інтерактивно

shutdown -h now
init 2 

система не працює.


1

На головній сторінці FreeBSD:

Заплановане відключення може бути скасовано шляхом припинення процесу відключення (SIGTERM має бути достатньо).

Так killall shutdownпрацює на BSD, коли заплановане відключення (наприклад shudown -h +5).

Я не думаю, що неможливо скасувати негайне відключення ( shutdown -h now) у реальному сценарії.


0

припустимо, ви надіслали повідомлення про перезавантаження або відключення на весь термінал з метою технічного обслуговування, що "сервер збирається перезавантажити або відключити з метою обслуговування протягом 10 хвилин"

Цей вид команди може скасувати.

просто натисніть Ctrl+C

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.