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


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.