ALT Services
Модуль управления сервисами ALT Services или Aльт Сервисы — часть платформы Alterator on D-Bus, приложение для удобного управления системными сервисами:
- Samba Active Directory;
- Chrony (NTP-клиент/сервер).
alterator-service-<имя_сервиса>.
Например, alterator-service-samba-ad - сервис для управления Samba Active Directory.
Установка
Для работы с модулем необходимо установить:
- Сервисы;
- Приложение для работы с сервисами:
- для работы в графике — ALT Services (пакет alt-services);
- для работы в консоли — alteratorctl (пакет alteratorctl).
Установить сервисы:
Для установки сервисов нужно доставить соответствующие пакеты. Например, для установки сервиса, предназначенного для взаимодействия с Samba Active Directory, необходимо выполнить команду ниже:
# apt-get update
# apt-get install alterator-service-samba-ad
Установить приложение для работы с сервисами:
Работать с сервисами можно и в графике и в консоли.
Для работы в графике необходимо установить графическое приложение ALT Services:
# apt-get install alt-services
Для работы в консоли — alteratorctl:
# apt-get install alteratorctl
Запуск
ALT Services
Запуск из Центра Управления Системой
- Запустить версию платформы Alterator на D-Bus:
- Чтобы перейти на эту версию ЦУС, установите клиентское приложение
alterator-explorer:# apt-get install alterator-explorer
- Запустите ЦУС (acc).
- Чтобы перейти на эту версию ЦУС, установите клиентское приложение
- Выберите сервис в интерфейсе Центра Управления Системой:
Запуск из консоли
# alt-services
alteratorctl
Для работы с сервисами в alteratorctl предназначен модуль services:
$ alteratorctl services
▲ Samba AD (samba_ad_service) не развёрнут
Обозначения состояний:
■ развёрнут, запущен
◆ развёрнут, остановлен
▲ не развёрнут
Управление службами
В интерфейсе приложения
На левой панели располагается список сервисов, правое поле предназначено для вывода свойств.
При выборе сервиса Samba AD отображается две вкладки. Вкладка «Состояние» передаёт информацию о домене.
Вкладка «Ресурсы» показывает захваченные сервисом ресурсы (файлы, каталоги, порты, systemd-юниты и т. п.) и их текущее состояние.
Для каждого из действий ("Диагностика", "Развернуть", "Деактивировать", "Настроить") предусмотрен отдельный мастер, который открывается при их выборе. Ниже приведен мастер развертывания.
В консоли с помощью alteratorctl
Управление сервисами в консоли происходит при помощи модуля services утилиты alteratorctl. Доступные команды и их синтаксис смотрите в справочном выводе утилиты:
$ alteratorctl services --help
alteratorctl services доступны пользователю для запуска. Однако для выполнения некоторых действий потребуются права администратора.
Руководство администратора
Основные возможности и работа с сервисами
Приложение имеет простой и интуитивно понятный графический интерфейс. Все функциональные возможности доступны на основной панели и отражают рекомендуемую последовательность работы (workflow):
- Предварительная диагностика (Diagnose). С помощью ALT Services проверьте, готова ли система к развёртыванию сервиса.
- Развертывание (Deploy). Задайте конфигурацию сервиса, сервис захватывает необходимые ресурсы и запускает службы.
- Деактивация (Undeploy). Остановите работу сервиса, освободите ресурсы и вернитесь к оригинальным (исходным) настройкам.
- Настройка (Configure). В интерактивном режиме редактируйте конфигурационные параметры уже запущенного сервиса.
- Запустить/Остановить сервис (Start/Stop).
- Резервное копирование (Backup):. Создайте резервную копию изменённой/настроенной вручную/настроенной при развёртывании конфигурации сервиса.
- Восстановление (Restore). Вернитесь к конфигурации сервиса с помощью файла резервной копии.
Также приложение позволяет просматривать текущие параметры конфигурации сервиса и его ресурсы.
Описание доступных сервисов
| Название | Описание | Наличие
в репозитории Sisyphus |
Исходники
на altlinux.space |
|---|---|---|---|
| Samba Active Directory | Сервис предназначен для управления Samba Active Directory. Позволяет:
|
alterator-service-samba-ad | alterator/alterator-service-samba-ad |
| Сервис Chrony (NTP-клиент/сервер) | Сервис позволяет:
|
alterator-service-chrony | alterator/alterator-service-chrony |
| Общие каталоги | Сервис предназначен для управления общими папками Samba. Позволяет:
|
- | alterator/alterator-service-samba-share |
| Сервис FTP (FTP-сервер VSFTPD) | Сервис предоставляет комплексное решение для управления FTP-сервером VSFTPD (Very Secure FTP Daemon) в Linux-системах. Позволяет:
|
- | alterator/alterator-service-vsftpd |
Использование службы Samba Active Directory
В данной инструкции описывается процесс развёртывания контроллера домена Active Directory на базе Samba с помощью модуля alt-services.
Установка пакетов
Сначала установите пакеты:
# apt-get install -y alterator-service-samba-ad alt-services
Развёртывание службы
- Запустите alt-services.
- В списке служб выберите Samba AD и нажмите кнопку Развернуть.
Откроется мастер, на одной из страниц которого необходимо задать параметры будущего домена.
Параметры развёртывания
Ниже приведено подробное описание каждого параметра.
| Параметр | Описание и влияние | Рекомендации по выбору |
|---|---|---|
| Режим | Определяет режим развертывания:
|
Для первого сервера в инфраструктуре выберите «Создать новый домен». |
| Пароль администратора | Устанавливает пароль для встроенной учётной записи Administrator. Пароль обязателен и должен соответствовать политикам сложности Active Directory.
|
Задайте надёжный пароль (не короче 12 символов, содержащий буквы в разных регистрах, цифры и спецсимволы). |
| Имя контроллера домена | Устанавливает имя контроллера домена. Пример: dc0
|
Полное доменное имя контроллера домена должно быть меньше 155 байт. |
| NetBIOS имя | Короткое (до 15 символов) имя домена для обратной совместимости с устаревшими клиентами. Обычно совпадает с первой частью Realm. Пример: corp.
|
Используйте короткое, запоминающееся имя в нижнем регистре. |
| Realm | Полное DNS-имя домена (Kerberos-область). Используется для аутентификации. Пример: corp.example.com
|
Используйте поддомен вашего реального домена. Не рекомендуется использовать несуществующие зоны верхнего уровня (например, .local), так как это может привести к конфликтам с mDNS. Имя должно быть в нижнем регистре. Полное доменное имя контроллера домена должно быть меньше 155 байт.
|
| Тип базы | Формат внутреннего хранилища каталога Samba:
|
По умолчанию используйте tdb. Размер базы задаётся только при выборе mdb; для tdb параметр размера не требуется.
|
| Использовать RFC 2307 | Синхронизирует UNIX идентификаторы пользователей и групп между различными компьютерами в домене. | Обычно выключено. Включайте, если нужна синхронизация ID пользователей и групп. |
| Функциональный уровень | Определяет функциональность домена (DFL) и леса (FFL). Влияет на совместимость с различными версиями Windows Server. | Рекомендуется использовать 2008 R2. Уровень можно повысить позже, понизить нельзя.
|
| Бэкенд DNS | Реализация DNS-сервера для обслуживания доменной зоны:
|
Рекомендуется SAMBA_INTERNAL по умолчанию.
|
| Серверы пересылки | Список внешних DNS-серверов, на которые будут пересылаться запросы для внешних доменов (например, ya.ru). | Укажите IP-адреса DNS-серверов вашего провайдера, корпоративные DNS или публичные серверы (например, 9.9.9.9, 8.8.8.8).
|
Пример рекомендуемых значений
| Параметр | Пример значения |
|---|---|
| Режим | Создать новый домен
|
| Имя контроллера домена | dc0
|
| Realm | ad.example.org
|
| NetBIOS имя | ad
|
| Тип базы | tdb
|
| RFC 2307 | Нет (выключено)
|
| Функциональный уровень | 2008 R2
|
| Бэкенд DNS | SAMBA_INTERNAL
|
Запуск развёртывания
После заполнения всех полей нажмите кнопку «Применить». Мастер выполнит все необходимые действия по настройке службы.
По завершении развёртывания служба не запустится автоматически. Нажмите кнопку Запустить, чтобы активировать контроллер домена.
Проверка работоспособности
После запуска службы необходимо убедиться, что контроллер домена функционирует корректно.
Проверка Kerberos
Выполните в командной строке сервера запрос на получение TGT-билета для администратора домена.
# kinit Administrator Password for Administrator@AD.EXAMPLE.ORG: <введите пароль> Warning: Your password will expire in 41 days on Tue 25 Nov 2025 13:33:00
Затем проверьте, что билет был успешно получен:
# klist Ticket cache: KEYRING:persistent:0:0 Default principal: Administrator@AD.EXAMPLE.ORG Valid starting Expires Service principal 14.10.2025 14:20:55 15.10.2025 00:20:55 krbtgt/AD.EXAMPLE.ORG@AD.EXAMPLE.ORG renew until 21.10.2025 14:20:52
Наличие билета krbtgt/... свидетельствует о корректной работе службы KDC.
Проверка через средства администрирования
Для управления объектами Active Directory (пользователи, компьютеры, группы) можно использовать утилиту ADMC (Active Directory Management Center). Запустите её из системного меню или командой admc.
На этом этапе контроллер домена готов к работе. Вы можете приступать к вводу в домен рабочих станций и серверов.
Управление службой после развёртывания
Изменение настроек
Некоторые параметры службы (например, серверы пересылки DNS) можно изменить после развёртывания. Для этого в модуле Службы нажмите кнопку Настроить.
Резервное копирование и восстановление
Модуль alt-services предоставляет встроенные инструменты для создания и восстановления резервных копий конфигурации Samba AD.
- Резервное копирование: Создаёт архив с ключевыми файлами конфигурации, базой данных...
- Восстановить: Позволяет восстановить состояние службы из ранее созданной копии.
Файлы резервных копий по умолчанию сохраняются в каталоге: /var/lib/alterator/service/<название_сервиса>/config-backup/. Перед восстановлением, необходимо скопировать файлы резервной копии в тот же каталог.
Ошибки и нестандартные случаи
- Используйте функцию «Восстановить» из заранее созданной резервной копии.
- Проверьте статус системных служб:
# systemctl status <имя_службы>
- Логи операций и диагностики обычно пишутся в файлы, указанные в интерфейсе alt-services или в journalctl.
Руководство разработчика
Методы интерфейса org.altlinux.alterator.service1
Каждый .backend сервиса, реализующий интерфейс org.altlinux.alterator.service1, должен включать реализацию всех его методов.
Ознакомиться с описанием методов можно в документации.
Описание сервисов
В этом разделе в качестве примеров в общих чертах приведено описание методов работы некоторых сервисов.
- Назначение: управление общими папками Samba, включая создание, изменение и удаление записей в
/etc/samba/smb.confи контроль systemd-юнитовsmbиnmb. - Helper: скрипт
/usr/bin/service-samba-sharesподдерживает операции create, delete, update, deploy, undeploy, start, stop, status, backup и restore, принимает JSON-параметры и возвращает ответы в JSON. - Развёртывание: при deploy сохраняет оригинальный
smb.conf, включает службы и публикует событиеalterator-announce, возвращая состояние deployed. - Статус: формирует JSON с полями
status,servicesиshares. - Backend:
service-samba-shares.backendвызывает helper с нужными методами, включает передачу stdin и сигналы stdout/stderr для долгих операций; метод Status возвращает JSON как байтовой поток. - Описание
.service: содержит параметрыoperation,share_name,share_path,access_user,access_type,allowed_users,enabled, а также ресурсыsmb_conf,backups,smb_service,nmb_serviceи массивsharesдля вкладки статуса.
alterator-service-chrony
- Назначение: настройка службы chronyd, управление серверами и пулами NTP, подсетями клиентов и параметрами makestep/rtcsync, а также резервирование конфигурации
/etc/chrony.conf. - Helper:
service-chronyобрабатывает режимы deploy, configure, start, stop, status, backup, restore и undeploy; читает JSON из stdin и модифицируетchrony.confчерез sed и jq. - Развёртывание: сохраняет оригинальный конфиг, отключает или включает пул
pool.ntp.org, добавляет сервера и подсети согласно JSON и фиксирует входные данные в.../deployment-config.json. - Конфигурация: удаляет устаревшие записи серверов, пулов и подсетей, затем применяет параметры
clientsSettingsи NTP-настроек, записывая их в.../configuring-config.json. - Статус: выводит текущий JSON (deploy или configure) и добавляет служебные параметры
deployedиstartedв зависимости от состоянияchrony.service. - Backend:
service-chrony.backendзадаёт маппинг методов к helper’у и подключает сигналы stdout/stderr для длительных операций. - Описание
.service: параметры охватывают массивыntpServersSettings,ntpPoolsSettings, объектntpDefaultPool, подсети клиентов и ресурсыchronyConfиChronyd(systemd unit).
alterator-service-vsftpd
- Назначение: конфигурация FTP-сервера vsftpd, управление параметрами доступа, пассивными портами и резервными копиями конфигурации в
/etc/vsftpd. - Helper:
service-vsftpdреализует режимы deploy, configure, start, stop, status, backup, restore и undeploy; принимает JSON, модифицирует/etc/vsftpd/confи/etc/vsftpd/vsftpd.conf, создаёт бэкапы и архивы. - Развёртывание: сохраняет текущий конфиг, применяет параметры (
anonymous_enable,local_enable,write_enable, порты) и записывает итоговый JSON в/usr/share/alterator-service-vsftpd/deployment-config.json. - Отмена развёртывания: восстанавливает последний
.originalиз/etc/vsftpd/backups, удаляет JSON и каталог состояния, останавливает службу. - Резервное копирование: архивирует
/etc/vsftpdв/var/backups/vsftpd/vsftpd_backup_<timestamp>.tar.gz; restore ищет указанный файл или последний архив и перезапускает службу. - Статус: читает
deployment-config.json, выводит его содержимое и завершает работу. - Backend:
service-vsftpd.backendиспользует helper и включает сигналы stdout/stderr; метод Status возвращает байтовой поток с JSON. - Описание
.service: предоставляет параметры доступа (anonymous_enable,local_enable,write_enable) и порты (listen_port,pasv_min_port,pasv_max_port), а также полеbackup_nameдля восстановления.
Принцип работы
- Сервисы описываются файлами Alterator Entry (
.serviceи.backend), которые загружаются alterator-manager. Alt-services или alteratorctl подключается к alterator-manager по D-Bus и предоставляет интерфейс пользователю. - Методы управления предоставляются D-Bus интерфейсом
org.altlinux.alterator.service1; параметры передаются в формате строк JSON через stdin helper’ов. - Backend-файлы связывают вызовы интерфейса с исполняемыми помощниками, перенаправляют stdout/stderr в сигналы и определяют таймауты.
- Helper-скрипты реализуют операционную логику: редактируют конфигурации, управляют systemd и формируют JSON-ответы со статусом и артефактами (логи, пути к бэкапам).
Описание .backend
- Обязательные поля:
type = "Backend",module = "executor",interface = "service1",name = <идентификатор>; методы описываются в секции[methods.<Method>]. - Для методов, требующих входных данных, указывается
stdin_string = true; длительные операции транслируют stdout/stderr в сигналыservice_stdout_signalиservice_stderr_signal. - Метод Status обычно возвращает JSON через
stdout_bytes = true(при необходимостиstdout_json = true), что позволяет UI парсить данные статуса и ресурсов. - Timeout задаётся в секундах (например, 600) и соответствует рекомендациям спецификации
.backendдля модуля executor. - Полная спецификация
.backendфайлов: документация.
Описание .service
- Глобальные ключи:
type,name,category,display_name,comment, дополнительные флагиenable_force_deployиno_default_diagпо необходимости. - Секция
parametersописывает поля, их типы (string,boolean,enum,array,object), контексты (deploy,configure,status,backup,restore) и обязательность; составные типы задаются черезprototypeилиproperties. - Секция
resourcesперечисляет файлы, каталоги, порты и systemd-юниты с указанием свойств и привязок к параметрам; используется для избегания конфликтов между различными сервисами и отображения в UI. - Служебные параметры
deployed,startedиforce_deployдоступны в контексте status/deploy и автоматически добавляются при необходимости;enable_force_deployвключает передачуforce_deploy. - Полная спецификация
.serviceфайлов: документация.
Создание простого сервиса
В данном разделе демонстрируется, как создать минимальный рабочий сервис для Alt-services на примере Hello World.
Архитектура системы
В системе участвуют три основных компонента:
- Графический интерфейс (alt-services).
- Запускается от имени пользователя, предоставляет элементы управления сервисом.
- Альтернатива — консольная утилита
alteratorctl services. - Общается с alterator-manager по D-Bus.
- Системный демон (alterator-manager).
- Работает через D-Bus как системная служба.
- Получает команды от интерфейса и вызывает методы бэкенда.
- Использует модуль executor для запуска скриптов с повышенными привилегиями.
- Исполняемый скрипт (helper).
- Реализует фактические действия: развёртывание, запуск, остановку.
- Вызывается через alterator-manager.
Подготовка системы
Установите необходимые пакеты:
# Установка alt-services (остальные пакеты подтянутся по зависимостям)
sudo apt-get install alt-services
Создание сервиса Hello World
Для создания сервиса потребуется три файла:
- hello-world.service — описание интерфейса сервиса (frontend).
- hello-world.backend — описание методов сервиса (backend).
- hello-world-helper — исполняемый скрипт с логикой.
Frontend описание (hello-world.service)
Создайте файл /usr/share/alterator/services/hello-world.service:
type = "Service"
name = "hello_world"
category = "X-Alterator-Servers"
display_name.en = "Hello World Service"
display_name.ru = "Сервис Hello World"
comment.en = "A simple Hello World service example"
comment.ru = "Простой пример сервиса Hello World"
enable_force_deploy = true
[parameters.message]
display_name.en = "Message"
display_name.ru = "Сообщение"
comment.en = "The message to display"
comment.ru = "Сообщение для отображения"
type = "string"
context = ["deploy", "configure", "status"]
default = "Hello, World!"
[resources.configuration]
display_name.en = "hello-world.conf"
display_name.ru = "hello-world.conf"
comment.en = "hello-world.conf file"
comment.ru = "Файл hello-world.conf"
type = "file"
path.value = "/etc/hello-world/hello-world.conf"
Ключевые моменты:
name = "hello_world"— машинное имя сервиса (используйте подчёркивание, не дефис).parameters.message— параметр, который пользователь может настроить.resources.configuration— объявление ресурсов сервиса.
Полная спецификация .service файлов: документация.
Backend описание (hello-world.backend)
Создайте файл /etc/alterator/backends/hello-world.backend:
type = "Backend"
module = "executor"
interface = "service1"
name = "hello_world" # ВАЖНО: без дефисов!
[methods.Info]
execute = "cat /usr/share/alterator/services/hello-world.service"
action_id = "Info"
stdout_bytes = true
[methods.Deploy]
execute = "hello-world-helper -d"
action_id = "Deploy"
stdin_string = true
[methods.Undeploy]
execute = "hello-world-helper -u"
action_id = "Undeploy"
stdin_string = true
[methods.Configure]
execute = "hello-world-helper -c"
action_id = "Configure"
stdin_string = true
[methods.Status]
execute = "hello-world-helper -s"
action_id = "Status"
stdout_bytes = true
[methods.Start]
execute = "hello-world-helper --start"
action_id = "Start"
[methods.Stop]
execute = "hello-world-helper --stop"
action_id = "Stop"
[methods.Backup]
execute = "hello-world-helper -b"
action_id = "Backup"
stdin_string = true
[methods.Restore]
execute = "hello-world-helper -r"
action_id = "Restore"
stdin_string = true
Важно:
- Значение
nameдолжно быть без дефисов (только подчёркивания), иначе получите ошибку "Incorrect node name". stdin_string = trueозначает, что метод принимает JSON на stdin.stdout_bytes = trueозначает, что метод возвращает данные через stdout.
Полная спецификация .backend файлов: документация.
Исполняемый скрипт (hello-world-helper)
Создайте файл /usr/bin/hello-world-helper:
#!/usr/bin/env bash
set -euo pipefail
# Переменные
service="hello-world"
conf="/etc/hello-world/hello-world.conf"
cache="/var/cache/$service"
deployfile="$cache/deployed"
startfile="$cache/started"
log="/var/log/alterator/hello-world.log"
# Функция логирования
logf() {
mkdir -p "$(dirname "$log")" "$cache"
ts="$(date -Is 2>/dev/null || date '+%Y-%m-%dT%H:%M:%S%z')"
echo "[$ts] hello-world-helper: $*" >>"$log" || true
}
# Парсинг аргументов
mode="status"
input=""
while [ $# -gt 0 ]; do
case "$1" in
-d) mode="deploy" ;;
-u) mode="undeploy" ;;
-c) mode="configure" ;;
-s) mode="status" ;;
--start) mode="start" ;;
--stop) mode="stop" ;;
-b) mode="backup" ;;
-r) mode="restore" ;;
*) echo "Unknown arg: $1" >&2; exit 1 ;;
esac
shift
done
# Чтение JSON со stdin если необходимо
if [ -z "${input:-}" ]; then
case "$mode" in
deploy|configure|backup|restore) input="$(cat || true)";;
esac
fi
# Функция записи конфигурации
write_conf() {
mkdir -p "$(dirname "$conf")"
printf '%s' "${input:-{}}" > "$conf"
logf "write_conf $conf"
}
# Функция проверки статуса
status() {
local deployed=false
local started=false
[ -f "$deployfile" ] && deployed=true
[ -f "$startfile" ] && started=true
printf '{"deployed": %s, "started": %s}\n' "$deployed" "$started"
exit 0
}
# Основная логика
case "$mode" in
deploy)
write_conf
mkdir -p "$cache"
: > "$deployfile"
echo "$service deployed"
logf "deploy"
;;
undeploy)
rm -f "$startfile" "$deployfile"
echo "$service undeployed"
logf "undeploy"
;;
configure)
write_conf
echo "$service configured"
logf "configure"
;;
start)
[ -f "$deployfile" ] || { echo "Service is not deployed!" >&2; exit 1; }
: > "$startfile"
echo "$service started"
logf "start"
;;
stop)
[ -f "$startfile" ] || { echo "Service is not started!" >&2; exit 1; }
rm -f "$startfile"
echo "$service stopped"
logf "stop"
;;
backup|restore)
logf "$mode"
;;
status)
status
;;
*)
echo "Unknown mode" >&2; exit 1;;
esac
Сделайте скрипт исполняемым:
chmod +x /usr/bin/hello-world-helper
Метод Status:
- Возвращает JSON c параметрами
deployed(развёрнут) иstarted(запущен), а также произвольными параметрами статуса сервиса. - Код завершения 0 при успехе; ненулевой код — ошибки выполнения.
В случае с реальным сервисом скрипт может запускать и останавливать systemd юниты, модифицировать файлы конфигурации, создавать резервные копии файлов конфигурации, и так далее.
Установка сервиса
Вместо того, чтобы создавать файлы непосредственно в нужных директориях, можно устанавливать их.
Быстрая установка для тестирования
Данный вариант не рекомендуется, и его следует применять в первую очередь для быстрой отладки в тестовой среде.
Создайте скрипт установки install.sh:
#!/bin/sh
set -eu
[ "$(id -u)" -eq 0 ] || { echo "Run as root"; exit 1; }
install -Dm644 hello-world.service /usr/share/alterator/services/hello-world.service
install -Dm644 hello-world.backend /etc/alterator/backends/hello-world.backend
install -Dm755 hello-world-helper /usr/bin/hello-world-helper
echo "Installation complete."
echo "alterator-manager will auto-reload backend changes."
Запустите установку:
sudo sh install.sh
Примечание: После установки перезапуск alterator-manager обычно не требуется — менеджер автоматически отслеживает изменения в каталоге бэкендов.
Создание RPM-пакета (рекомендуется)
Для реального использования рекомендуется создать RPM-пакет. Создайте файл alterator-service-hello-world.spec:
Name: alterator-service-hello-world
Version: 0.1.0
Release: alt1
Summary: Hello World service for Alt-services
License: GPLv3+
Group: System/Configuration/Other
BuildArch: noarch
Requires: alt-services
%description
Minimal example service for Alt-services
%install
install -Dm644 hello-world.service %buildroot%_datadir/alterator/services/hello-world.service
install -Dm644 hello-world.backend %buildroot%_sysconfdir/alterator/backends/hello-world.backend
install -Dm755 hello-world-helper %buildroot%_bindir/hello-world-helper
%files
%_datadir/alterator/services/hello-world.service
%config(noreplace) %_sysconfdir/alterator/backends/hello-world.backend
%_bindir/hello-world-helper
Проверка работы сервиса
Проверка через графический интерфейс
- Запустите Alt Services.
- Найдите в списке «Сервис Hello World».
- Нажмите кнопку Deploy (можете указать своё сообщение в поле «Сообщение»).
- После развёртывания нажмите Start.
- Проверьте лог работы:
sudo tail -f /var/log/alterator/hello-world.log
Сервис должен выглядеть в Alt Services следующим образом:
Проверка через командную строку
Хоть это и не подразумевается при обычном использовании, для отладки можно работать со скриптом напрямую:
# Развернуть сервис с пользовательским сообщением
echo '{"message":"Привет от Hello World!"}' | sudo hello-world-helper -d
# Запустить сервис
sudo hello-world-helper --start
# Проверить статус
sudo hello-world-helper -s
echo "Код возврата: $?"
# Остановить сервис
sudo hello-world-helper --stop
# Удалить сервис
sudo hello-world-helper -u
Отладка
Проверка D-Bus объектов
После установки backend'а создаётся D-Bus объект. Проверить его можно командами:
# Посмотреть дерево объектов
busctl --system tree org.altlinux.alterator
# Посмотреть методы конкретного объекта
busctl --system introspect org.altlinux.alterator \
/org/altlinux/alterator/hello_world
Просмотр логов
# Логи alterator-manager
journalctl -u alterator-manager -f
# Логи тестового сервиса
sudo tail -f /var/log/alterator/hello-world.log
Использование D-Feet
Для визуальной отладки D-Bus можно использовать утилиту D-Feet:
- Установите:
sudo apt-get install D-Feet. - Запустите и выберите System Bus.
- Найдите org.altlinux.alterator.
- Раскройте дерево до /org/altlinux/alterator/hello_world.
- Посмотрите доступные методы интерфейса org.altlinux.alterator.service1.
Важные замечания
- Права доступа.
- Alt-services работает от имени пользователя, но операции выполняются с повышенными привилегиями через PolicyKit.
- Права регулируются файлом
org.altlinux.alterator.service1.policyиз пакета alterator-interface-service.
- Именование.
- В файле .backend используйте только подчёркивания в имени (hello_world), не дефисы.
- Это ограничение D-Bus на имена объектов.