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

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

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

решение1

С использованиемat:

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

Или используйте sleep 30m; telinit 0.

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

решение2

# telinit 0

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


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

# telinit 6

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


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

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

или спать:

# sleep 1800 && telinit 0

(1800 секунд)

решение3

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

echo reboot | at now +30 m

Связанный контент