![Что запускает определенную услугу](https://rvso.com/image/231065/%D0%A7%D1%82%D0%BE%20%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D0%B5%D1%82%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%83%D1%8E%20%D1%83%D1%81%D0%BB%D1%83%D0%B3%D1%83.png)
Я использую 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, либо выясняете, что начинаетсячтослужбу, выполнив поиск по ней справа от ->
.