
Я использую AlmaLinux 9, и у меня есть служба (называется она "X"). Я хочу выяснить, что запускает службу X (так как она отключена).
Есть ли команда, которая покажет, какая другая служба запустит X (как зависимость или другая)?
решение1
systemd-analyze
Кажется, это то, что вам нужно. Вам нужно установить, graphviz
чтобы получить графическую визуализацию dot
, которая systemd-analyze dot
генерирует формат входных данных. (это не обязательно должно происходить на той же машине. Для простоты давайте сделаем это на той же машине.)
systemd-analyze dot --require > graph.dot
grep -v 'color="red"' | dot -Tsvg Gsplines=line > graph_embedding.svg
firefox graph_embedding.svg # or some other SVG viewer
(здесь мы подавляем «конфликты с» красными ребрами и используем dot
прямые линии при соединении узлов; сплайны, которые он использует по умолчанию, делают почти любое вложение больших графов неоднозначным для чтения; мне не ясно, о чем думали авторы.)
Это может быть слишком много информации на одной картинке. Я бы рекомендовал вам быстро собрать скрипт для извлечения поддерева обратных зависимостей, начиная с интересующего вас узла, но увы, это разовая проблема (надеюсь), поэтому откройте graph.dot
в своем любимом текстовом редакторе. найдите вхождения ->"X.service"
, обратите внимание на то, что осталось от ->
, затем вы либо уже понимаете, что требует X, либо выясняете, что начинаетсячтослужбу, выполнив поиск по ней справа от ->
.