Termux – это мощный терминальный эмулятор для Android, который предоставляет полноценную Linux‑окружение. Одной из самых востребованных возможностей является автоматизация повторяющихся задач: резервные копии, синхронизация файлов, отправка уведомлений и многое другое. В этой статье мы рассмотрим два подхода к автоматизации в Termux: традиционный планировщик cron и имитацию systemd с помощью пакета termux-services.
1. Установка и настройка cron
В отличие от полноценного дистрибутива Linux, Android не поставляется с cron «из коробки». В Termux его можно установить из репозитория:
pkg update && pkg upgrade
pkg install cronie
После установки необходимо запустить демон crond и добавить его в автозапуск, чтобы он оставался активным после перезагрузки устройства.
# Запуск демона вручную (для проверки)
crond -b
# Добавление в автозапуск при помощи termux‑boot
pkg install termux-boot
mkdir -p $HOME/.termux/boot
cat > $HOME/.termux/boot/start-cron.sh <<'EOF'
#!/data/data/com.termux/files/usr/bin/sh
crond -b
EOF
chmod +x $HOME/.termux/boot/start-cron.sh
Теперь демону crond будет достаточно запустить один раз, а дальше он будет работать в фоне.
2. Создание задач в crontab
Для управления расписанием используется файл crontab. Откройте его в редакторе:
crontab -e
Пример простейшего задания, которое каждую минуту выводит текущее время в лог‑файл:
echo "$(date)" >> $HOME/cron.log
Несколько полезных шаблонов:
0 2 pkg update && pkg upgrade -y– обновление пакетов каждый день в 2 утра.30 23 0 tar -czf $HOME/backup-$(date +%F).tar.gz $HOME/Documents– архивирование папкиDocumentsкаждое воскресенье в 23:30.@reboot termux-wake-lock && $HOME/scripts/start_server.sh– запуск скрипта при загрузке (черезtermux-boot).
3. Ограничения cron в Android
Хотя cron полностью работает, есть нюансы:
- Демон прекращает работу, если система переходит в режим «Doze» или «Battery saver». Для надёжного выполнения рекомендуется добавить
termux-wake-lockв скрипт. - Отсутствует поддержка системных сервисов (socket‑activation, зависимостей). Если нужны более сложные сценарии, удобнее воспользоваться
systemd-эмулятором.
4. Эмуляция systemd с помощью termux-services
Пакет termux-services предоставляет набор утилит, позволяющих управлять сервисами в стиле systemd. Установим его:
pkg install termux-services
После установки появляется набор команд:
sv-enable– включить сервис.sv-disable– отключить сервис.sv-statusall– вывести статус всех сервисов.
Создадим простой сервис, который будет поддерживать HTTP‑сервер python -m http.server в фоновом режиме.
# Создание директории для сервисов
mkdir -p $HOME/.termux/boot
# Файл описания сервиса (service‑http)
cat > $HOME/.termux/boot/service-http <<'EOF'
#!/data/data/com.termux/files/usr/bin/sh
# Описание: простой HTTP‑сервер на 8080 порту
exec python -m http.server 8080 --directory $HOME/public_html
EOF
chmod +x $HOME/.termux/boot/service-http
# Регистрация сервиса в termux-services
sv-enable service-http
После выполнения команды сервис будет автоматически запущен при каждом старте Termux (через termux-boot) и будет контролироваться демоном sv. Вы можете проверить статус:
sv status service-http
5. Интеграция cron и termux-services
Оба подхода могут работать совместно. Например, можно использовать cron для периодической генерации контента, а termux-services – для постоянного обслуживания веб‑сервера. Ниже пример задания, которое каждый час обновляет статическую страницу:
0 echo "Обновлено: $(date)" > $HOME/public_html/index.html
После изменения файла сервер автоматически отобразит новые данные без перезапуска.
6. Лучшие практики
- Размещайте скрипты в отдельной директории (
$HOME/scripts) и делайте их исполняемыми. - Используйте
set -eв начале скриптов, чтобы они прекращали работу при любой ошибке. - Логи сохраняйте в отдельный файл и регулярно чистите их (
logrotateдоступен в Termux). - Для долгосрочных задач включайте
termux-wake-lockилиtermux-battery-saverв зависимости от политики энергопотребления.
Заключение
Автоматизация в Termux теперь доступна на уровне полноценного Linux‑окружения. Классический cron отлично подходит для простых расписаний, а termux-services позволяет реализовать более сложные сервисы, напоминающие работу systemd. Комбинируя оба инструмента, вы получаете гибкую и надёжную инфраструктуру прямо на вашем Android‑устройстве.
Если вам требуется профессиональная настройка автоматизации, разработка кастомных скриптов или консультация по интеграции Termux в бизнес‑процессы, обратитесь в RybinskLab. Мы предоставляем услуги по:
- Разработке и деплою скриптов автоматизации под Android.
- Настройке безопасных бэкапов и синхронизации данных.
- Обучению персонала и проведению воркшопов по использованию Termux.
Свяжитесь с нами, и мы поможем вывести ваши мобильные решения на новый уровень эффективности.