Предполагая, что вы только что ввели команду shutdown -h now(или что-то эквивалентное), реально ли что-то, что вы можете сделать (если вы достаточно быстры), чтобы предотвратить выключение машины?
@Ken: shutdown -c и [Ctrl] + [c] совершенно разные. shutdown -c - это команда, которая отменяет ранее запланированное завершение работы (в этом смысле запланировано даже «сейчас» - но будет ли отмена отменять перезагрузку, в этом случае - гонка). [Ctrl] + [c] заставит ваш терминал генерировать SIGINT (сигнал прерывания) для того процесса, который в данный момент подключен к нему. Это может работать при работающей команде выключения, но это довольно случайно для вашего вопроса.
Джим Деннис
1
@ Джим Деннис: я знаю разницу между 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
Предположим, вы отправили сообщение о перезагрузке или завершении работы на все терминалы с целью обслуживания, что «сервер собирается перезагрузиться или завершить работу с целью обслуживания в течение 10 минут»
shutdown -h now
, я полагаю, что вы сразу же теряете доступ к командной строке,halt -p
так что вы ничего не можете сделать.Ответы:
Вы можете запустить,
shutdown -c
чтобы отменить уже запущенное завершение работы.источник
ctrl+c
ctrc+c
иshutdown -c
. Но учитывая скорость-now
опциона, а не его запланированного родного брата,ctrl+c
будет самый быстрый путь к этому. Я не верил, что вы можете остановить имманентное отключение, еще более удивлен, что вы можете прервать его, но, очевидно, вы можете, но это гонка, как вы заявили.Если вы достаточно быстры, вы можете запустить
init 2
(или любой другой уровень запуска), и это, вероятно, остановит выключение. Все, что связано с уничтожением команды выключения, завершится ошибкой, так как команда выполняется слишком быстроЯ попробовал это с помощью сценария ниже, и даже это не достаточно быстро, чтобы остановить выключение
Где как в интерактивном режиме
система остается в рабочем состоянии.
источник
Со страницы руководства FreeBSD:
Так
killall shutdown
работает на BSD, когда есть запланированное отключение (напримерshudown -h +5
).Я не думаю, что возможно отменить немедленное завершение работы (
shutdown -h now
) в реальном сценарии.источник
Предположим, вы отправили сообщение о перезагрузке или завершении работы на все терминалы с целью обслуживания, что «сервер собирается перезагрузиться или завершить работу с целью обслуживания в течение 10 минут»
Этот вид команды может отменить.
просто нажмите Ctrl+C
источник