Получение статусов юнитов #32

Closed
opened 12 months ago by asmeron · 0 comments
Owner

Для заполнения таблицы юнитов необходимы:

  1. Перечень всех юнитов - команда получения списка
  2. Фильтр по типу модуля: - фильтр юнитов по имени юнита
    Все описаны в #5
    • service
    • mount
    • swap
    • socket
    • target
    • device
    • automount
    • timer
    • path
    • slice
    • scope
  3. Фильтр "Неактивный/Активный" - фильтр юнитов со статусом inactive/active
  4. Фильтр "Не загружен/Загружен" - фильтр юнитов со статусом not-found/loaded
  5. Фильтр "Настройка в системе" : "Автостарт" - фильтр юнитов со статусом enabled
  6. Фильтр "Настройка в системе" : "Запущен" - фильтр юнитов со статусом ACTIVE active/inactive/failed
  7. Фильтр "Настройка в системе" : "Юнит" - фильтр юнитов со статусом SUB running/active/plugged/waiting/ded/abandoned/failed/exited
  8. Фильтр "Юнит" - Имя юнита

Команды:

  1. Получить список юнитов с колонками:
    • UNIT (Имя юнита)
    • LOAD (Правильность загрузки юнита. Статус loaded/not-found)
    • ACTIVE (Состояние загрузки юнита, обобщённый статус active/inactive/failed)
    • SUB (Состояние загрузки юнита, подробный статус running/active/plugged/waiting/ded/abandoned/failed/exited)
    • DESCRIPTION (Описание юнита)
$ systemctl list-units --no-pager --all --plain --no-legend |sed -E 's/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)/\1;\2;\3;\4;\5/'
  1. Получить список файлов юнитов с колонками:
    • UNIT FILE (Имя файла юнита)
    • STATE (Состояние enabled/disabled/static/transient/alias/indirect/masked/много других)
    • PRESET (Поставляется в конфигурации системы)
$ systemctl list-unit-files --no-pager --all --no-legend |sed -E 's/(\S+)\s+(\S+)\s+(.*)/\1;\2;\3/'
  1. Замечания к командам 1. 2.:

    • Количество юнитов полученное через systemctl list-units будет всегда меньше полученного через systemctl list-unit-files
  2. Команда для получения всех юнитов с параметрами для приложения:

systemctl --property=Names,Description,LoadState,ActiveState,SubState,UnitFileState,FragmentPath,ActiveEnterTimestampMonotonic,InactiveEnterTimestampMonotonic --no-pager --all --no-legend show -- $(echo "$(systemctl list-units --no-pager --all --plain --no-legend | sed -E 's/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)/\1/')$(systemctl list-unit-files --no-pager --no-legend | sed -E 's/(\S+)\s+(\S+)\s+(.*)/\1/')" | sed "/\@\./d" | sort -u)
  1. Замечания:

    • Сейчас указан перечнь получаемых значений:
      Names - Имя
      Description - Описание
      LoadState - Статус загрузки (not-found/loaded)
      ActiveState - Статус активности (inactive/active)
      SubState - Статус работы (running/active/plugged/waiting/ded/abandoned/failed/exited)
      UnitFileState - Автостарт (enable/disable)
      FragmentPath - Файл
      ActiveEnterTimestampMonotonic - Время активации
      InactiveEnterTimestampMonotonic - Время деактивации
    • Пустая строка разделитель между Юнитами
  2. Алгоритм работы приложения по заполнению таблицы юнитов Слайд 01:

    • Первое заполнение таблицы, выполняем команду 4.
    • Парсим результат и заполняем внутреннюю таблицу
    • Каждое изменение любого юнита выполняем запрос на изменяемый юнит: systemctl --property=Names,Description,LoadState,ActiveState,SubState,UnitFileState,FragmentPath,ActiveEnterTimestampMonotonic,InactiveEnterTimestampMonotonic --no-pager --all --no-legend show -- veyon.service
    • Изменение полученные вносим во внутреннюю таблицу
  3. Описание соответствий графических элементов:

Для заполнения таблицы юнитов необходимы: 1. Перечень всех юнитов - команда получения списка 2. Фильтр по типу модуля: - фильтр юнитов по имени юнита Все описаны в https://gitea.ublinux.ru/Artwork_Applications/design-ubl-settings-services/issues/5 - service - mount - swap - socket - target - device - automount - timer - path - slice - scope 3. Фильтр "Неактивный/Активный" - фильтр юнитов со статусом `inactive/active` 4. Фильтр "Не загружен/Загружен" - фильтр юнитов со статусом `not-found/loaded` 5. Фильтр "Настройка в системе" : "Автостарт" - фильтр юнитов со статусом `enabled` 6. Фильтр "Настройка в системе" : "Запущен" - фильтр юнитов со статусом ACTIVE `active/inactive/failed` 7. Фильтр "Настройка в системе" : "Юнит" - фильтр юнитов со статусом SUB `running/active/plugged/waiting/ded/abandoned/failed/exited` 8. Фильтр "Юнит" - Имя юнита Команды: 1. Получить список юнитов с колонками: - UNIT (Имя юнита) - LOAD (Правильность загрузки юнита. Статус `loaded/not-found`) - ACTIVE (Состояние загрузки юнита, обобщённый статус `active/inactive/failed`) - SUB (Состояние загрузки юнита, подробный статус `running/active/plugged/waiting/ded/abandoned/failed/exited`) - DESCRIPTION (Описание юнита) ```bash $ systemctl list-units --no-pager --all --plain --no-legend |sed -E 's/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)/\1;\2;\3;\4;\5/' ``` 2. Получить список файлов юнитов с колонками: - UNIT FILE (Имя файла юнита) - STATE (Состояние `enabled/disabled/static/transient/alias/indirect/masked/много других`) - PRESET (Поставляется в конфигурации системы) ```bash $ systemctl list-unit-files --no-pager --all --no-legend |sed -E 's/(\S+)\s+(\S+)\s+(.*)/\1;\2;\3/' ``` 3. Замечания к командам 1. 2.: - Количество юнитов полученное через `systemctl list-units` будет всегда меньше полученного через `systemctl list-unit-files` 4. Команда для получения всех юнитов с параметрами для приложения: ```bash systemctl --property=Names,Description,LoadState,ActiveState,SubState,UnitFileState,FragmentPath,ActiveEnterTimestampMonotonic,InactiveEnterTimestampMonotonic --no-pager --all --no-legend show -- $(echo "$(systemctl list-units --no-pager --all --plain --no-legend | sed -E 's/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)/\1/')$(systemctl list-unit-files --no-pager --no-legend | sed -E 's/(\S+)\s+(\S+)\s+(.*)/\1/')" | sed "/\@\./d" | sort -u) ``` 5. Замечания: - Сейчас указан перечнь получаемых значений: Names - Имя Description - Описание LoadState - Статус загрузки `(not-found/loaded)` ActiveState - Статус активности `(inactive/active)` SubState - Статус работы `(running/active/plugged/waiting/ded/abandoned/failed/exited)` UnitFileState - Автостарт `(enable/disable)` FragmentPath - Файл ActiveEnterTimestampMonotonic - Время активации InactiveEnterTimestampMonotonic - Время деактивации - Пустая строка разделитель между Юнитами 6. Алгоритм работы приложения по заполнению таблицы юнитов Слайд 01: - Первое заполнение таблицы, выполняем команду 4. - Парсим результат и заполняем внутреннюю таблицу - Каждое изменение любого юнита выполняем запрос на изменяемый юнит: `systemctl --property=Names,Description,LoadState,ActiveState,SubState,UnitFileState,FragmentPath,ActiveEnterTimestampMonotonic,InactiveEnterTimestampMonotonic --no-pager --all --no-legend show -- veyon.service` - Изменение полученные вносим во внутреннюю таблицу 7. Описание соответствий графических элементов: - https://gitea.ublinux.ru/Artwork_Applications/design-ubl-settings-services/issues/33
asmeron added the ошибка label 12 months ago
anshn was assigned by asmeron 12 months ago
YanTheKaller was assigned by asmeron 12 months ago
asmeron closed this issue 12 months ago
Sign in to join this conversation.
Loading…
There is no content yet.