Termux предоставляет полноценную Linux‑окружение на Android‑устройствах. Одной из ключевых возможностей любой UNIX‑системы является планирование задач. В этой статье мы рассмотрим два самых популярных механизма автоматизации в Termux: cron и systemd. Вы узнаете, как установить и настроить каждый из них, а также получите готовые примеры, которые можно сразу использовать в своих проектах.
cron в Termux
Классический планировщик cron уже давно зарекомендовал себя как надёжный способ выполнять скрипты по расписанию. В Termux он доступен через пакет cronie.
pkg update && pkg install cronie
После установки необходимо включить демон crond. В Termux это делается через сервис termux-services:
pkg install termux-services
termux-services enable crond
termux-services start crond
Файл расписания хранится в ~/.crontab. Его можно отредактировать любой удобной программой, например vim:
vim ~/.crontab
Пример простого задания, которое будет запускать скрипт backup.sh каждый день в 02:30:
30 2 /data/data/com.termux/files/home/scripts/backup.sh >> /data/data/com.termux/files/home/logs/backup.log 2>&1
После сохранения изменений необходимо загрузить их в планировщик:
crontab ~/.crontab
Для проверки списка активных задач используйте:
crontab -l
Важно помнить, что в Termux окружение PATH может отличаться от привычного Linux. Чтобы гарантировать корректный запуск, указывайте полные пути к скриптам и используйте абсолютные пути к интерпретатору, например /data/data/com.termux/files/usr/bin/bash.
systemd в Termux
Начиная с версии 0.118 Termux поддерживает эмуляцию systemd через пакет termux-services. Это открывает возможности создавать сервисы, управлять их зависимостями и получать статус в привычном виде.
pkg install termux-services
Для создания собственного сервиса необходимо создать unit‑файл в директории ~/.termux/boot. Формат файла аналогичен стандартным unit‑файлам systemd.
# ~/.termux/boot/my-backup.service
[Unit]
Description=Daily backup script
After=network.target
[Service]
Type=oneshot
ExecStart=/data/data/com.termux/files/home/scripts/backup.sh
StandardOutput=append:/data/data/com.termux/files/home/logs/backup.log
StandardError=append:/data/data/com.termux/files/home/logs/backup.log
[Install]
WantedBy=multi-user.target
После создания файла его необходимо активировать и запустить:
termux-services enable my-backup.service
termux-services start my-backup.service
Для периодического запуска можно использовать таймеры systemd. Таймер хранится в файле с расширением .timer:
# ~/.termux/boot/my-backup.timer
[Unit]
Description=Run backup daily at 02:30
[Timer]
OnCalendar=-- 02:30:00
Persistent=true
[Install]
WantedBy=timers.target
Активируем и запускаем таймер:
termux-services enable my-backup.timer
termux-services start my-backup.timer
Проверить статус можно с помощью стандартных команд systemctl (символически связаны с termux-services):
systemctl status my-backup.service
systemctl list-timers --all
Сравнительная таблица
| Фактор | cron | systemd |
|---|---|---|
| Простота установки | Да (пакет cronie) | Требует понимания unit‑файлов |
| Поддержка зависимостей | Нет | Есть (After=, Wants=) |
| Таймеры и отложенный запуск | Ограничены синтаксисом crontab | Гибкие (OnCalendar, OnBootSec) |
| Логи | Нужно явно перенаправлять | Встроенные (StandardOutput/StandardError) |
| Управление статусом | crontab -l / ps | systemctl status |
Практические рекомендации
- Для простых задач (ежедневные бэкапы, очистка кеша)
cronбудет быстрее в настройке. - Если требуется координация нескольких скриптов, ограничение по ресурсам или отложенный запуск после перезагрузки, предпочтительнее
systemdс таймерами. - Всегда проверяйте права исполнения скриптов:
chmod +x script.sh. - Указывайте полные пути к интерпретатору и файлам, так как окружение Termux может отличаться от обычного Linux.
- Для отладки
cronпросматривайте системный лог Termux:logcat | grep crond. Дляsystemdиспользуйтеjournalctl -u my-backup.service.
Заключение
Автоматизация в Termux теперь доступна на уровне полноценного Linux‑окружения. Выбор между cron и systemd зависит от сложности задачи и ваших предпочтений. Оба инструмента позволяют создавать надёжные и гибкие сценарии, которые будут работать даже при отсутствии активного экрана.
Если вам нужна профессиональная настройка Termux, разработка кастомных скриптов или интеграция Android‑устройства в инфраструктуру CI/CD, команда RybinskLab готова помочь. Мы предоставляем услуги по консалтингу, написанию автоматизированных решений и поддержке вашего мобильного Linux‑окружения. Свяжитесь с нами, чтобы вывести автоматизацию на новый уровень.