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.