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

Closed
opened 7 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 7 months ago
anshn was assigned by asmeron 7 months ago
YanTheKaller was assigned by asmeron 7 months ago
asmeron closed this issue 7 months ago
Sign in to join this conversation.
Loading…
There is no content yet.