Команда дампа
Если кто-то попросит вас показать всю конфигурацию вашей системы, используйте команду 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 сначала выглядит сбивающим с толку, но когда вы присмотритесь, все это использует простой способ унифицировать запуск, чтобы службы могли запускаться параллельно там, где это необходимо системе, при этом каждая служба может ждать конкретной службы, от которой они зависят.