Выключите мою систему через 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