Зелёная боль
блог программиста не только о программировании

Запуск сервисов в termux на android
25.06.2020 51

termux services android

Многие продвинутые пользователи android зачастую так или иначе начинают работать с операционной системой так, как если бы они работали с обычным linux-дистрибутивом. Запущенный терминал, а иногда и ssh-сессия, использование линуксовых утилит, а иногда даже и запуск окружения рабочего стола. Запуск сервисов также является типовой задачей при таком использовании устройства. Под катом описываю, как запускать сервисы в termux на android.

Как это работает

Все сервисы внутри termux работают благодаря runit. Это замена стандартной системы инициализации, похожей на init. В некоторых дистрибутивах используется как родная система управления сервисами. Подробнее но в общих чертах о том что это такое можно прочитать здесь. А вот здесь находится вики-страница termux-services, это как раз то что потребуется.

Создание сервиса

Прежде всего необходимо установить пакет.

Далее необходимо создать каталог и файлы в нем, описывающие сервис. В моем случае каталог с описанием всех сервисов /data/data/com.termux/files/usr/var/service. Если посмотреть содержимое, там уже может находиться описание некоторых сервисов.

Создаем здесь папку с названием сервиса и переходим в нее.

И описываем в нем то, как будет запускаться сервис.

Первая строчка в комментарии это путь к оболочке, далее сама команда.

Это самый простой случай, когда необходимо просто запустить процесс с параметрами. Возможны и более сложные сценарии. Например, запуск nginx выглядит следующим образом.

Но в целом идея должна быть понятна: runit возмет именно этот файл за инструкцию как запускать сервис. Сохраняем изменения в файле и выходим (Ctrl+x и Enter). Далаем файл исполняемым.

И теперь можно запускать сервис

Если все прошло без ошибок (а если они будут вы увидите их в выводе), то процесс можно будет найти в списке

htop termux service android

Также рекомендую включить для termux блокировку от глубокого сна.

Необходимо подтвердить блокировку на самом устройстве (также как при подключении к ПК через ADB). Это для того, чтобы устройство не уходило в сон, а вместе с ним и все запущенные в окружении termux процессы.

Метки: , , ,
Категории Common

Добавить комментарий

Ваш адрес email не будет опубликован.