Сегодня я хотел бы рассказать нашим читателям о базовых принципах работы с мощным планировщиком для 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, а остальное зависит только от ваших потребностей и фантазии! 🙂


Читайте также: