Сегодня я хотел бы рассказать нашим читателям о базовых принципах работы с мощным планировщиком для Mac OS X под названием cron
и смоделировать учебную ситуацию — прямо как у спасателей или военных.
Итак, представим, что у вас есть определенное приложение, которое должно работать постоянно, но по каким-то неизвестным причинам время от времени аварийно завершает свою работу. Вот тут нам на помощь и приходит незаметный инструментарий операционной системы: командная строка, скрипты и фоновые службы (демоны).
Допустим, таким приложением будет torrent-клиент Transmission, хотя на самом деле, вы можете прописать в нижеуказанном скрипте абсолютно любое приложение. Только обязательно убедитесь, что в его названии вы правильно написали все строчные и прописные буквы, символы или пробелы, а добавлять «.app» совершенно необязательно.
Набрать скрипт можно, к примеру, в текстовом редакторе nano
, запустить который необходимо в Терминале:
#!/bin/sh
PATH=/bin:/usr/bin
APPNAME="Transmission"
ps xc|fgrep "${APPNAME}" > /dev/null && exit 0
open -a "${APPNAME}"
exit 0
Вначале мы проверяем, запущено ли наше приложение: если да, то выходим, а если нет — запускаем его. Просто, не правда ли? Набранный скрипт следует сохранить в файл (Ctrl+O) и завершить работу nano
(Ctrl+X).
Я решил назвать скрипт run-transmission.sh
и сохранить его в домашний каталог ~/
, хотя вы можете выбрать совершенно другое имя и любую папку на компьютере — главное, не забыть, как вы его назвали и куда положили 🙂
Теперь необходимо наш файл сделать исполняемым при помощи вот такой команды:
chmod +x /Users/Deavy/run-transmission.sh
Осталось уведомить cron
о том, что мы хотим запускать наш скрипт по графику. Для этого требуется создать файл ~/.crontab
(если он уже существует — отредактировать) при помощи того же nano
и добавить в него такие строки:
*/5 * * * * /Users/Deavy/run-transmission.sh
Первые пять параметров (звездочки), разделенные табуляторами или пробелами, обозначают временной промежуток: минуты, часы, дни, месяцы или дни недели. В данном случае наш скрипт будет запускаться каждые 5 минут и проверять статус торрент-клиента. При редактировании можно задать свою частоту запуска и, что более важно, правильно ввести путь к сценарию и его название.
Последний шаг — указать демону на наш созданный файл вот такой командой:
crontab ~/.crontab
Вы без проблем увидите добавленное задание при помощи команды crontab -l
. Таким образом, можно убедиться, что все параметры указаны правильно и подлежат исполнению. Кроме этого, спустя 5 минут после «аварийного отключения», Transmission вновь запустится и продолжит выполнять свои непосредственные обязанности.
Если вы больше не нуждаетесь в услугах этого планировщика, то можете воспользоваться командой crontab -r
. Она очистит все задания.
Теперь вы знаете, как управлять работой cron, а остальное зависит только от ваших потребностей и фантазии! 🙂
Последние комментарии