Lo que quiero decir bajo la pregunta es: ¿hay alguna manera de volcar la lista ordenada (como lo hace pstree para los procesos) para ver cómo systemd ejecutó el conjunto de unidades suministrado, es decir, el árbol después de que se resolvieron las dependencias y los trabajos se pusieron en cola para la ejecución ? Sé que puede hacerlo analizando los datos de estado del sistema, pero ¿hay alguna forma rápida de ver ese árbol? Sería de gran ayuda en la investigación de fallas (por ejemplo, si ve que el proceso de arranque se atascó en alguna unidad, podrá determinar la ubicación aproximada para su investigación más profunda.
63
Respuestas:
systemd-analyze
es tu amigo. Por ejemplo,systemd-analyze critical-chain
salidas que bloquean el árbol de demonios. La mía por ejemplo:NetworkManager, por ejemplo, básicamente mantiene todo el arranque.
Si desea tener una vista más detallada, puede representar toda la cadena de ejecución en un archivo svg.
systemd-analyze plot > something.svg
genera toda la cadena (más de 120 módulos) como barras de progreso en un archivo svg de alta resolución que muestra estados bloqueados y otros problemas.Finalmente, tiene una
systemd-analyze dot
herramienta que genera un archivo de puntos que genera toda la jerarquía:systemd-analyze dot | dot -Tpng -o stuff.png
con la herramienta de puntos también puede generarlo como archivos ps y svg.Todas las herramientas anteriores están integradas en la herramienta de análisis systemd que viene por defecto con systemd en archlinux al menos. Creo que también hay algunos proyectos de terceros que se ocupan de eso.
fuente
systemd-analyze plot > something.svg
tiene tres ejecuciones completas con objetivos (es lo más parecido a lo que quieres). systemd-analyse dot es un gráfico completo de dependencias (es la representación más correcta). ¿No son estos lo que quieres? En la trama, solo busque el objetivo y vea lo que necesita también. Las mismas dependencias son gráficas exactamente enumeradas, si es que enciende mucho el kit de herramientas de análisis de gráficas y selecciona el punto del gráfico para el que desea ver las dependencias (la herramienta de puntos tiene más configuraciones). Consulte la página de manual: freedesktop.org/software/systemd/man/systemd-analyze.html --order and similar$ systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg > avahi.svg
$ eog avahi.svg
Esto traza las dependencias entre todas las unidades objetivo conocidas:systemd-analyze dot --to-pattern='*.target' --from-pattern='*.target' | dot -Tsvg > targets.svg
$ eog targets.svg
Es posible que aún no responda completamente su pregunta, pero intente con la
--fuzz
opciónNota También puede especificar la unidad de s para ver su cadena crítica , por lo que no está limitado a la multi-user.target
Espero que esto ayude
fuente
No estoy seguro de entender bien la pregunta, pero hay visualizaciones de árbol disponibles con los siguientes comandos:
Y también :
Espero que esto ayude :)
Además, podría ser útil para otros fines construir un árbol de las carpetas de enlaces simbólicos systemctl:
En realidad, fue realmente útil descubrir unidades antiguas / con errores que estaban ralentizando el inicio de mi sistema, para deshabilitarlas luego usando el
systemctl disable
comando.EDITAR
Dicho esto, estoy realmente de acuerdo con el OP en que esta funcionalidad básica se debe proporcionar a través de herramientas de línea de comandos, y no una herramienta gráfica ... ¿Qué sucede si no puede iniciar X? ¿Cómo manejas tu archivo svg entonces?
En realidad, hay un camino. Si no puede usar
scp
(herramienta ssh) para recuperar su archivo en otra computadora, enfbi
realidad podría ayudarlo :)Trabajé en mis TTY. Simplemente navegue dentro de la imagen con flechas. Hay opciones de zoom, para hacer una lista
fbi -h
.Nuevamente espero que esto ayude. Está disponible en Archlinux y Ubuntu repos.
EDITAR 2:
fbi
no funciona sobre ssh. Puede reenviar X de esta manerassh -Y user@server
, pero necesita un servidor X que se ejecute en su servidor remoto.La mejor apuesta aquí es usar
sshfs
. Funciona GENIAL en el espacio de usuario, por ejemplo con nautilus. Hay una pequeña configuración que hacer, ver:fuente
sshfs
funciona aún mejor. Ver EDITAR 2.