Отложенный запуск команд в Linux
Представим себе ситуацию, что вы запустили на компьютере какой-нибудь процесс, который займет некоторое время, а вам нужно срочно уходить. Как выключить компьютер по завершению операции, если вас рядом нет?
Можно попросить выключить компьютер свою бабушку, но этот вариант довольно рискован, ведь она может обнаружить ваши запасы веселых картинок и разных увлекательных фильмов, где тети кричат, и сдать вас родителям. Этот вариант явно не продвинутого пользователя. Продвинутый пользователь вспомнит о таких полезных командах, как at и sleep.
Команда at
Команда at позволяет выполнить sh-сценарий строго в указанное время. Например, нам нужно выключить компьютер в 10:00. Для этого запускаем терминал и вводим:
at 10:00
После этого компьютер будет ожидать ввода списка команд, которые потребуется выполнить в назначенное время. Напишем команду halt (выключение), нажмем Enter и затем Ctrl-D для выхода. Операционная система принимает задание и мы можем быть уверенными, что компьютер выключится ровно в 10:00.
Команда at умеет понимать разные форматы времени. Можно использовать такие ключевые слова, как now, today, tomorrow, days и т.д. Например, чтобы запустить задачу в 16:00 через три дня после сегодняшнего нужно ввести at 16:00 + 3 days. За полным списком возможностей следует обратиться к руководству программы at.
Команда sleep
Команда sleep, как следует из названия, засыпает на указанное в качестве аргумента время, а потом завершается. На первый взгляд, какую же мы можем извлечь выгоду из этого бессмысленного действия? А вот какую. Например, нам нужно, чтобы торрент-клиент запустился ночью. Смотрим на часы и определяем, что ночь у нас наступит, например, через 4 часа. Запускаем терминал и задаем следующую команду:
sleep 4h && transmission-gtk
Пытливый читатель, наверное, спросит что делать, если ночь настанет не ровно через 4 часа, а, скажем, через 4 часа и 30 минут. Решение этой проблемы выглядит просто и элегантно:
sleep 3h && sleep 30m && transmission-gtk
Команда sleep при всей своей простоте настолько универсальна, что диву даешься. Например, с помощью sleep можно заставить операционную систему завершить какую-либо программу в установленное время. Например, выключим загрузку торрентов через 8 часов:
sleep 8h && pkill transmission-gtk
Изобретение остроумных комбинаций с командами at и sleep не только является отличной разминкой для ума, но и способно значительно улучшить качество вашей работы на компьютере.
Фото 1. Он разобрался как использовать команды at и sleep.
Комментарии
Чингачгук
26 июня, 2012 - 02:29
А так не проще разве:
sleep 3h 30m && transmission-gtk
?
Вот, скажем, простенький будильник для пользователей vlc:
sleep 5h 31m && vlc ~/Audio/Sounds/Wazzup.mp3 -L
Чингачгук
28 июня, 2012 - 00:15
А можно и так: sleep 3.5h
Чингачгук
11 октября, 2016 - 14:49
а можно вообще никак
Rabinovitch
8 декабря, 2020 - 20:42
Но лучше уж как-нибудь. Хотя бы.
Комментировать