Выключение Linux через 30 секунд?

8

Простой вопрос: какие параметры можно использовать для выключения компьютера под управлением Linux / OSX за 30 секунд? Я всегда запускал Windows, куда бы я не пошел, shutdown -s -t 30но параметры разные. Я посмотрел его здесь, но он позволит вам выключить компьютер только в определенное время (например, в 8:00), а не через определенное количество секунд.

icnhzabot
источник

Ответы:

8

В OS X вы можете отключиться за одну минуту, используя следующую команду:

sudo shutdown -h +1

AFAIK, с помощью этой команды невозможно указать секунды вместо минут.

Вы также можете перезагрузиться, используя -rвместо -h.


РЕДАКТИРОВАТЬ:

Как вы упомянули в своем комментарии, вы можете программно добавить задержку, а затем немедленно выключить систему, нажав

shutdown -h now

Но обратите внимание, что эта команда потребует root-доступа.

Остин
источник
Мех. Так что не используйте десятичные дроби. Думаю, все в порядке, мне было интересно, потому что я пытаюсь работать над кроссплатформенным Java-приложением, которое может выключить компьютер. Так что я мог бы просто заснуть на 30 секунд, прежде чем немедленно выключиться. Но sudo shutdown -hвыключит ли компьютер без преднамеренной задержки?
@icnhzabot sudo shutdown -h nowнемедленно выключит компьютер без предупреждения.
Остин
хорошо, спасибо. так что для рут доступа мне надо делать sudo shutdown -h nowправильно?
icnhzabot
@icnhzabot Это не будет работать для автоматизированного скрипта / программы, потому что он запрашивает у пользователя пароль администратора в командной строке. Вы должны запустить свой скрипт от имени пользователя root и просто позвонить shutdown -h now. Если вам нужна помощь с этим, вы должны задать новый вопрос (при условии, что вы не можете найти ответ в другом месте). Кроме того, не забудьте пометить лучший ответ здесь как «принятый», если он ответил на ваш вопрос.
Остин
3

Используя основные вызовы, я не вижу способа сделать это за секунды, но похоже, что вы можете сделать это за минуты:

time Time is the time at which shutdown will bring the system down and
     may be the word now (indicating an immediate shutdown) or specify
     a future time in one of two formats: +number, or yymmddhhmm,
     where the year, month, and day may be defaulted to the current
     system values.  The first form brings the system down in number
     minutes and the second at the absolute time specified.

Другими словами:

shutdown -h +1

Если вы хотите выключить его через 1 минуту.


источник
Вы знаете, будет ли это работать с .5?
Здесь есть ошибка - -rопция для перезагрузки, а не выключения. Вы должны использовать -hдля выключения.
Остин
@ Остин, тьфу, исправил это.
3

Как указано, команда

sudo shutdown -h +1

Добавляет одну минуту.

Если вы хотите сделать это за секунды или часы или что-то очень специфическое, вы можете сделать что-то вроде:

shutdown -h `date --date "now + 60 seconds"`

РЕДАКТИРОВАТЬ: Выше, больше не работает на более поздних сборках Ubuntu. Спасибо за указание на это @zitrax. Моя ошибка, ты прав.

Но вы все еще можете сделать это, но, может быть, до ближайшей минуты.

sudo shutdown -h `date --date "now + 10 minutes" "+%H:%M"`

Что несколько бессмысленно, когда параметр + m легче набирать .... аааа, ну ладно.

Мэтт Н
источник
Не работает (по крайней мере, в Linux), это дает время в другом формате, чем ожидалось.
Цитракс
@Zitrax, просто потому, что он не работал в вашем случае, не означает, что он не работает во всех разновидностях Linux. Я бы хотел, чтобы вы также отметили, что обратная пометка "отличается от одинарной кавычки". Наверное, поэтому это не сработало для вас. Это абсолютно работает во всех версиях Ubuntu, начиная с 10.04. И поскольку Ubuntu основан на Debian, он будет работать и над этим. Возможно, было бы более конструктивно сказать «не работает на…», а не голосовать и сделать общее заявление. Linux - это общий термин, а не версия. Но я на самом деле думаю, что вы напечатали это неправильно. Попробуйте еще раз.
Мэтт Х
1
Я попробовал еще раз на моей домашней машине, и она там тоже не работает. Я знаю, как работает обратный удар. Итак, я попробовал Ubuntu 13.10 и Kubuntu 13.10. Может быть, я использую другую локаль? Выход из date --date "now + 60 seconds"для меня LOR 22 фев 2014 21:25:03 CET и если я использую , что вместе с отключением печатает «недопустимый TIMEVALUE» ( в переводе на английский язык). Так что ваше утверждение о том, что написанная вами версия работает абсолютно во всех версиях Ubuntu, просто неверно. Если я указать формат на сегодняшний день он работает , хотя, как это: date --date "now +60 seconds" +%H:%M.
Цитракс
Пробовал переключаться на английский язык, но он тоже не работал. Поэтому я не уверен, почему это работает для вас.
Цитракс
Должна быть ваша версия команды выключения. Похоже, что версия, которая поставляется с Ubuntu, может отличаться. Его автором является Скотт Ремнант из Конаникал. Должно быть, он принимает более широкий диапазон значений ввода даты. Работает на меня и как минимум на 3 других, кто проголосовал.
Мэтт Х