We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Автоматизация задач в Termux с помощью cron и эмуляции systemd

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.

Свяжитесь с нами, и мы поможем вывести ваши мобильные решения на новый уровень эффективности.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен экспертом RybinskLab.

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю IT-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса.

Связаться со мной