Alterator-manager: различия между версиями

Материал из ALT Linux Wiki
(Описание alterator-manager)
 
Строка 21: Строка 21:
Создадим example.backend
Создадим example.backend
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
[Manager]
[[Alterator Entry]
module_name = executor
Type = Backend
node_name = example
Module = executor
interface_name = example
Name = first2
[hexdump]
Interface = second
execute = hexdump -C {param}
#Interface = ru.basealt.alterator.second //Интерфейс можно задать полным именем.
stdout_strings = enabled
thread_limit = 5
stdout_strings_limit = 7000000
action_id = org.freedesktop.test
thread_limit = 3
 
 
[make_ls2]
execute = ls -al {param}
 
[make_ls3]
execute = ls -al {param}
 
</syntaxhighlight>
</syntaxhighlight>



Версия от 15:12, 18 июня 2024

Alterator-manager — это сервис для управления операционной системой через D-Bus. Его функционал реализуется в модулях, а интерфейс описывается в специальных конфигурационных файлах.

Является компонентом новой реализации проекта Альтератор, Alterator на D-Bus.

Запуск

Alterator-manager может быть запущен в двух режимах — обычном и пользовательском:

$ systemctl start alterator-manager.service

или

$ systemctl --user start alterator-manager.service

В первом случае сервис запускается с полномочиями суперпользователя (root) и регистрирует имя (ru.basealt.alterator) на системной шине D-Bus. Во втором случае сервис запускается от обычного пользователя и регистрирует имя на сессионной шине D-Bus. После запуска происходит считывание конфигурационных файлов из /usr/share/alterator/backends/ и загрузка модулей из /usr/libexec/alterator/. Конфигурационные файлы — это glibовские key-value файлы, они должны иметь расширение .backend для обычного режима работы и .user.backend для пользовательского. На их основе формируется интроспекция для D-Bus и правила polkit (только в обычном режиме).

Спецификация

Документация представлена на странице проекта.

Пример

Создадим example.backend

[[Alterator Entry]
Type = Backend
Module = executor
Name = first2
Interface = second
#Interface = ru.basealt.alterator.second //Интерфейс можно задать полным именем.
thread_limit = 5
action_id = org.freedesktop.test


[make_ls2]
execute = ls -al {param}

[make_ls3]
execute = ls -al {param}

В этом примере мы получаем вывод (stdout) запускаемой команды массивом строк, но вывод мы можем получать и в виде массива байт.

Запустим наш сервис и посмотрим на дерево D-Bus:

  • Объект /ru/basealt/alterator/example
  • Интерфейс ru.basealt.alterator.example

Метод hexdump возвращает массив строк из stdout. Выполним метод hexdump.

Таким образом, можно сформировать backend для какого-либо приложения с API на D-Bus.