Предполагая, что вы только что ввели команду shutdown -h now
(или что-то эквивалентное), реально ли что-то, что вы можете сделать (если вы достаточно быстры), чтобы предотвратить выключение машины?
Предполагая, что вы только что ввели команду shutdown -h now
(или что-то эквивалентное), реально ли что-то, что вы можете сделать (если вы достаточно быстры), чтобы предотвратить выключение машины?
Ответы:
Вы можете запустить, shutdown -c
чтобы отменить уже запущенное завершение работы.
ctrl+c
ctrc+c
и shutdown -c
. Но учитывая скорость -now
опциона, а не его запланированного родного брата, ctrl+c
будет самый быстрый путь к этому. Я не верил, что вы можете остановить имманентное отключение, еще более удивлен, что вы можете прервать его, но, очевидно, вы можете, но это гонка, как вы заявили.
Если вы достаточно быстры, вы можете запустить 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
система остается в рабочем состоянии.
Со страницы руководства FreeBSD:
Запланированное отключение можно отменить, отключив процесс завершения (достаточно SIGTERM).
Так killall shutdown
работает на BSD, когда есть запланированное отключение (например shudown -h +5
).
Я не думаю, что возможно отменить немедленное завершение работы ( shutdown -h now
) в реальном сценарии.
shutdown -h now
, я полагаю, что вы сразу же теряете доступ к командной строке,halt -p
так что вы ничего не можете сделать.