Выключите мою систему через 30 минут с помощью telinit

Если я хочу отключить свою систему через 30 минут с помощью telinit, как я могу это сделать? Я знаю, что с выключением легче, но просто для того, чтобы знать это.

3 ответа

Решение

С помощью at:

at now + 30 minutes <<<'telinit 0'

Или использовать sleep 30m; telinit 0,

telinit Сам не может этого сделать. Вам придется использовать другие инструменты в сочетании. at а также sleep оба позволяют отменить операцию (с atrm за at и Ctrl C для другого).

# telinit 0

Уровень запуска 0 - это режим остановки. Указание init ввести нулевой уровень выполнения приведет к остановке всех процессов, размонтированию файловых систем и остановке компьютера. Это вполне приемлемый способ сломать систему. На многих ноутбуках и современных настольных компьютерах это также приведет к выключению машины. Источник


Дополнительно, если кто-то задается вопросом о перезагрузке:

# telinit 6

Уровень запуска 6 - режим перезагрузки. Все процессы будут уничтожены, файловые системы будут размонтированы, и машина будет перезагружена. Это вполне приемлемый способ перезагрузки системы. Источник


Чтобы выполнить что-то в будущем, у нас есть команда "at". Это было бы:

# at now+30 minutes <<<'telinit 0'

или спать:

# sleep 1800 && telinit 0

(1800 секунд)

В качестве предложения, не обращаясь к вашему вопросу напрямую. Четное at команда не установлена ​​по умолчанию и sleep с telinit - отличный выбор: если вы хотите попробовать другой инструмент, кроме telinit, вы можете попробовать перезагрузиться с:

echo reboot | at now +30 m
Другие вопросы по тегам