Termux — мощное Linux‑окружение для Android, которое позволяет запускать привычные инструменты командной строки. Одной из ключевых задач является автоматизация повторяющихся процессов: резервное копирование, синхронизация, мониторинг и т.д. В этой статье мы рассмотрим два самых надёжных планировщика — cron и systemd (через пакет termux-services) — и покажем, как настроить их в Termux шаг за шагом.
Подготовка окружения
Перед тем как приступить, убедитесь, что у вас установлена актуальная версия Termux и обновлены репозитории:
pkg update && pkg upgrade -y
Установим необходимые пакеты:
pkg install cronie termux-services nano
Настройка cron
Пакет cronie предоставляет классический планировщик cron. Выполняем следующие шаги:
- Запускаем демон cron и добавляем его в автозапуск Termux:
sv-enable crond
sv up crond
- Создаём пользовательский crontab:
crontab -e
В открывшемся редакторе (по умолчанию nano) добавляем запись, например, для ежедневного бэкапа:
0 3 * /data/data/com.termux/files/home/scripts/backup.sh >> /data/data/com.termux/files/home/log/backup.log 2>&1
- Проверяем список задач:
crontab -l
- Перезапускаем демон, если вносили изменения в конфигурацию:
sv restart crond
Настройка systemd через termux-services
Termux не поддерживает полноценный systemd, но пакет termux-services реализует совместимый набор команд sv и позволяет управлять сервисами, описанными в /data/data/com.termux/files/usr/etc/services. Это удобно для более сложных сценариев, где требуется зависимость между сервисами.
Шаги по созданию собственного сервиса:
- Создаём директорию для юнит‑файлов, если её нет:
mkdir -p $PREFIX/etc/services
- Создаём файл сервиса, например
mytask.service:
cat > $PREFIX/etc/services/mytask.service <<'EOF'
#!/data/data/com.termux/files/usr/bin/sh
# Description: Пример простого сервиса, который каждые 10 минут запускает скрипт
while true; do
/data/data/com.termux/files/home/scripts/myscript.sh >> /data/data/com.termux/files/home/log/myscript.log 2>&1
sleep 600
done
EOF
- Делаем файл исполняемым:
chmod +x $PREFIX/etc/services/mytask.service
- Регистрируем сервис в системе
sv:
sv-enable mytask
sv up mytask
После этого сервис будет автоматически запускаться при каждом старте Termux.
Управление сервисами
Для контроля над сервисами используем команды sv status, sv restart, sv stop и sv disable:
sv status mytask
sv restart mytask
sv stop mytask
sv disable mytask
Отладка и журналирование
Вывод сервисов и cron‑задач можно перенаправлять в файлы логов, как показано выше. Для более детального анализа можно использовать logcat или tail -f:
tail -f ~/log/backup.log
tail -f ~/log/myscript.log
Сравнение cron и systemd в Termux
- cron — простая таблица задач, идеально подходит для периодических запусков с фиксированным расписанием.
- systemd (termux-services) — позволяет описывать длительные процессы, задавать зависимости, автоматически перезапускать после падения и управлять их статусом.
Выбор зависит от конкретной задачи: для «выполнить скрипт каждый час» достаточно cron, а для «запускать демон, который постоянно работает и реагирует на события» лучше использовать systemd‑подобный сервис.
Заключение
Автоматизация в Termux становится доступной благодаря интеграции проверенных планировщиков cron и systemd (через termux-services). Следуя приведённым шагам, вы сможете легко организовать резервные копии, синхронизацию данных, мониторинг и любые другие повторяющиеся операции прямо на вашем Android‑устройстве.
Если вы хотите ускорить внедрение автоматизации, настроить сложные пайплайны или получить индивидуальное сопровождение, обратитесь в RybinskLab. Мы предлагаем:
- Консультации по оптимизации Termux‑окружения;
- Разработку кастомных скриптов и сервисов под ваш бизнес;
- Поддержку и обучение персонала.
Свяжитесь с нами, и мы поможем вывести ваш мобильный workflow на новый уровень.