Summary: | Написать модуль для управления сервисами | ||
---|---|---|---|
Product: | [Свободные проекты (Open source projects)] Tartarus | Reporter: | Devaev Maxim <mdevaev> |
Component: | Settingsd | Assignee: | Devaev Maxim <mdevaev> |
Status: | CLOSED FIXED | QA Contact: | Vitaly Lipatov <lav> |
Severity: | minor | ||
Priority: | P4 | CC: | lav, pav, sin |
Version: | не указана | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 5903 |
Description
Devaev Maxim
2010-10-06 21:44:27 MSD
Реализовал прототип управления сервисами. В специальном пространстве имен располагаются дбасные объекты, которые имееют методы on(), off(), start(), stop() и status(). on() и off() имеют аргумент, который позволяют включить сервис на конкретном ранлевеле. Написал модуль. Предоставляется дерево объектов, каждый из которых является сервисом с определенным набором методов, например: ----------------------------- /org/etersoft/settingsd/functions/services/NetworkManager /org/etersoft/settingsd/functions/services/acpid /org/etersoft/settingsd/functions/services/atd /org/etersoft/settingsd/functions/services/auditd ...... /org/etersoft/settingsd/functions/services/sshd /org/etersoft/settingsd/functions/services/sysstat /org/etersoft/settingsd/functions/services/udev_post /org/etersoft/settingsd/functions/services/vboxdrv /org/etersoft/settingsd/functions/services/vboxweb_service /org/etersoft/settingsd/functions/services/vnstat /org/etersoft/settingsd/functions/services/winbind /org/etersoft/settingsd/functions/services/wpa_supplicant /org/etersoft/settingsd/functions/services/xfs /org/etersoft/settingsd/functions/services/ypbind /org/etersoft/settingsd/functions/services/zvbid ----------------------------- Каждый объект имеет такой набор методов, для /org/etersoft/settingsd/functions/services/sshd: ----------------------------- method QString org.freedesktop.DBus.Introspectable.Introspect() method QString org.etersoft.settingsd.functions.service.description() method QString org.etersoft.settingsd.functions.service.levelsMap() method int org.etersoft.settingsd.functions.service.off(QString levels) method int org.etersoft.settingsd.functions.service.on(QString levels) method QString org.etersoft.settingsd.functions.service.shortDescription() method int org.etersoft.settingsd.functions.service.start() method int org.etersoft.settingsd.functions.service.status() method int org.etersoft.settingsd.functions.service.stop() ----------------------------- start(), stop() и status() используются для запуска сервиса, останова и получения статуса соответственно. Возвращаемым значением является код завершения команды /etc/init.d/<servicename> <command>. on() и off() позволяют включать и выключать сервис либо с параметрами по умолчанию, либо, если указано, на конкретных ранлевелах. levelsMap() возвращает строку из семи символов, каждый из которых является 1 или 0 и обозначает состояние сервиса для конкретного ранлевела. Например, для sshd levelsMap() у меня на ноуте возвращает 0011110, что означает, что сервис будет запускаться на уровнях 2345 (по индексу позиции в строке). Методы description() и shortDescription() нужны для получения описания сервиса по стандарту LSB. Сейчас парсеры для них не реализованы, поэтому возвращаемым значением является пустая строка. Помечены как TODO. Пока что, для коробочки, они не нужны. |