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

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

Интеграция Termux с Systemd: управление сервисами и автоматизация задач

Termux предоставляет Linux‑подобную среду прямо на Android‑устройстве. Однако стандартный набор инструментов не включает полноценный менеджер служб systemd. Интеграция systemd позволяет запускать фоновые процессы, управлять их зависимостями и автоматизировать задачи с помощью таймеров — так же, как это делается на обычных дистрибутивах Linux.

Подготовка окружения

Перед тем как приступить к установке systemd, убедитесь, что у вас актуальная версия Termux и установлены базовые пакеты:

pkg update && pkg upgrade -y
pkg install git curl wget proot-distro -y

Для дальнейшей работы потребуется termux-services — пакет, предоставляющий интерфейс к systemd в Termux.

Установка Systemd в Termux

Самый простой способ получить systemd — установить пакет termux-services:

pkg install termux-services -y

После установки будет создан специальный демон termux‑service, который эмулирует часть функций systemd. Чтобы он запускался автоматически при старте Termux, добавьте следующую строку в файл ~/.bashrc (или ~/.zshrc):

termux-service &

Перезапустите терминал или выполните source ~/.bashrc для применения изменений.

Создание пользовательского сервиса

Сервисы в Termux описываются в виде файлов unit‑ов, аналогично обычному systemd. Файлы размещаются в каталоге ~/.termux/services. Если каталога нет — создайте его:

mkdir -p ~/.termux/services

Пример простого сервиса, который будет запускать скрипт backup.sh каждый раз при старте Termux:

[Unit]
Description=Автоматическое резервное копирование
After=network.target

[Service]
Type=simple
ExecStart=/data/data/com.termux/files/home/scripts/backup.sh
Restart=on-failure

[Install]
WantedBy=default.target

Сохраните файл под именем backup.service в каталоге ~/.termux/services.

Регистрация и управление сервисом

Для того чтобы systemd «увидел» новый unit, выполните:

termux-service reload

Далее можно включить автозапуск сервиса:

termux-service enable backup.service

Запуск, остановка и проверка статуса происходят привычными командами:

termux-service start backup.service
termux-service stop backup.service
termux-service status backup.service

Все выводы аналогичны выводу systemctl в обычных дистрибутивах.

Автоматизация задач с помощью таймеров

Таймеры позволяют запускать сервисы по расписанию без участия cron. Создайте файл таймера в том же каталоге:

[Unit]
Description=Таймер резервного копирования каждые 6 часов

[Timer]
OnBootSec=10min
OnUnitActiveSec=6h
Persistent=true

[Install]
WantedBy=timers.target

Сохраните его как backup.timer. Затем активируйте таймер:

termux-service enable backup.timer
termux-service start backup.timer

После этого backup.service будет запускаться автоматически каждые шесть часов, а также через 10 минут после загрузки Termux.

Отладка и мониторинг

Для просмотра журналов используйте встроенный journalctl. Он уже доступен в Termux после установки termux-services:

journalctl -u backup.service -f

Опция -f выводит новые записи в реальном времени, что удобно для отладки скриптов.

Полезные рекомендации

  • Размещайте скрипты в каталоге ~/scripts и задавайте им права выполнения (chmod +x).
  • При работе с сетью убедитесь, что у приложения Termux есть разрешение android.permission.INTERNET. В некоторых случаях требуется добавить termux-wake-lock для предотвращения сна устройства во время длительных операций.
  • Для сложных зависимостей используйте секцию [Unit] с параметрами After= и Requires=.

Заключение

Интеграция systemd в Termux открывает широкие возможности по управлению фоновыми процессами и автоматизации задач прямо на Android‑устройстве. С помощью единиц .service и .timer вы получаете гибкую и надёжную систему, сравнимую с полноценными серверными решениями.

Если вам требуется профессиональная настройка Termux, разработка кастомных сервисов или аудит безопасности мобильных рабочих станций, обратитесь в RybinskLab. Мы предоставляем комплексные услуги по автоматизации, DevOps‑инфраструктуре и поддержке Linux‑окружений на Android.

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

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

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

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

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