systemd

Как вывести список сервисов с помощью systemd

Как вывести список сервисов с помощью systemd
Эта статья может быть короткой на одну команду, но итоговая распечатка будет очень длинной.

Команда дампа

Если кто-то попросит вас показать всю конфигурацию вашей системы, используйте команду dump.

$ systemd --dump-элементы-конфигурации

Файл охватывает все устройства, которые есть у вас в системе. Как только разработчик предоставит этот файл, он проанализирует то, что есть у вас, и попытается найти проблемы, с которыми вы сталкиваетесь. Все кончено. Однако вы бы не стали читать эту статью, если бы позволили кому-то другому делать все. Давайте посмотрим, что вы можете делать с сервисом за раз, и научимся некоторым приемам фильтрации результатов.

Иерархия systemd

Чтобы стать эффективным, вы должны понимать, что внутри systemd у вас есть иерархия, и вы можете настроить каждую службу на зависимость и / или ожидание других служб. Различные способы сделать это очевидны в служебных файлах. У вас есть разные утверждения: «Хочу», «Обязательно», «До» и «После». Для эффективного анализа вы можете использовать их, чтобы узнать, не работает ли ваше устройство из-за зависимостей. Затем вы можете проследить, где лежит основная проблема. Вот пример этого.

$ systemctl list-dependencies - перед xpra.услуга

На распечатке показаны другие устройства xpra.услуги полагаются на. В этом случае другие юниты активны, поэтому нам нужно сосредоточиться на том, почему сам юнит сломан. В примере отсутствовал файл сертификата.

Наиболее важное использование этого метода - выяснить, нет ли в вашем сервисе зависимостей, используйте команду таким образом.

$ systemctl список зависимостей xringd

В результате получается длинный список, удобно организованный в виде дерева, в котором все службы отображаются зеленым или красным цветом, если что-то не так. Вы также можете увидеть зависимости в файле служб. Откройте файл с помощью вашего любимого редактора или используйте systemctl, который откроет файл с помощью редактора по умолчанию.

Перечисление активных сервисов

Если вы хотите исследовать систему, вам нужно знать, как элементы сочетаются друг с другом. Для этого у вас есть несколько вариантов печати деталей. Вы можете перечислить, какие системы заняты, неисправны и т. Д. Что еще более важно, вы можете перечислить, как они собраны, какое подразделение, услуга и т. Д. текущая единица зависит от. Основная команда для этого - systemctl, параметры полезны для сужения вашей конкретной проблемы.

Чтобы правильно использовать systemctl, внимательно изучите параметры команды. Есть варианты выбрать именно то, что вам нужно, особенно с учетом состояния каких-либо услуг. Здесь ищем сервисы, у которых есть проблемы.

$ systemctl list-unit-files --type = сервис

Этот список тоже длинный, и вам нужно пролистать все службы, чтобы найти то, что вы ищете. С помощью дополнительных параметров вы можете отфильтровать конкретный или отключенные. Приведенная ниже команда найдет все замаскированные юниты.

$ systemctl list-unit-files --type = service --state = замаскированный

Маскированные службы блокируются, поэтому другие службы не могут их запустить, даже если они нужны другой службе. Это можно использовать для обеспечения того, что у вас не запущены конфликтующие службы. Обычно многие службы маскируются менеджером пакетов, когда вы удаляете пакет. Вы можете полностью удалить служебный файл, если хотите, после удаления службы. Также возможно, что это приведет к сбою многих сервисов, которые вам действительно нужны, поэтому убедитесь, что вы знаете, нужны ли вам замаскированные службы.

Некоторые службы маскируются процессами, и вы не всегда хотите, чтобы служба была замаскирована. Когда это случилось с вашей системой, первое действие, которое нужно предпринять, - разоблачить маску с помощью systemctl. Однако это не всегда возможно, поэтому вам нужно убрать ссылку в соответствующем каталоге. В большинстве систем это будет библиотека / systemd / система. Прежде чем вы это сделаете, убедитесь, что файл действительно является ссылкой на / dev / null.

$ ls -l lib / systemd / system> | grep null

Если вы уверены, что хотите удалить эту ссылку, удалите ее с помощью rm или unlink.

$ RM / Библиотека / systemd / система / udisks2.услуга

Теперь, когда вы знаете, как это сделать, услышьте это предупреждение: много раз необходимо, чтобы эта ссылка была там. Возьмем, к примеру, lvm2, он замаскирован для работы, поэтому он не будет мешать работе новой системы, где lvm2 имеет столько же мелких сервисов. Посмотрите результат:

$ systemctl статус lvm2 *

Удаление ссылки может вызвать хаос в вашей системе, потому что lvm2 требует ее отключения, чтобы избежать конфликтов. Это только пример, так что будьте осторожны, прежде чем двигаться дальше.

Заключение

Когда вы хотите перечислить службы в systemd, вы должны сначала подумать о том, что вы ищете в своем квесте. Вы ищете нужную услугу или видите, что у вас слишком много услуг?. В любом случае вам необходимо адаптировать свой запрос к вашим конкретным потребностям. Systemd сначала выглядит сбивающим с толку, но когда вы присмотритесь, все это использует простой способ унифицировать запуск, чтобы службы могли запускаться параллельно там, где это необходимо системе, при этом каждая служба может ждать конкретной службы, от которой они зависят.

Средняя кнопка мыши не работает в Windows 10
В средняя кнопка мыши помогает пролистывать длинные веб-страницы и экраны с большим объемом данных. Если это прекратится, вы в конечном итоге будете и...
Как изменить левую и правую кнопки мыши на ПК с Windows 10
Совершенно нормально, что все устройства компьютерной мыши эргономичны для правшей. Но есть мышиные устройства, специально разработанные для левшей ил...
Эмуляция щелчков мыши с помощью мыши без щелчка в Windows 10
Использование мыши или клавиатуры в неправильной позе или чрезмерное использование может привести к множеству проблем со здоровьем, включая растяжение...