Solución 1:
systemd-analyze
es tu amigo. Por ejemplo systemd-analyze critical-chain
árbol de bloqueo de salidas de daemons.Mine por ejemplo:
graphical.target @20.211s
└─multi-user.target @20.211s
└─nginx.service @19.348s +862ms
└─network.target @19.347s
└─NetworkManager.service @10.315s +9.031s
└─basic.target @10.312s
└─timers.target @10.311s
└─systemd-tmpfiles-clean.timer @10.311s
└─sysinit.target @10.295s
└─systemd-update-utmp.service @10.167s +127ms
└─systemd-tmpfiles-setup.service @10.124s +41ms
└─local-fs.target @10.097s
└─home-entd-Downloads.mount @10.093s +2ms
└─home.mount @9.326s +672ms
└─[email protected] @8.472s +696ms
└─dev-sda6.device @8.471s
NetworkManager en el ejemplo básicamente mantiene todo el arranque.
Si desea tener una vista más detallada, puede renderizar toda la cadena de ejecución en un archivo svg.systemd-analyze plot > something.svg
genera la cadena completa (más de 120 módulos) como barras de progreso en un archivo svg de alta resolución que muestra estados, que están bloqueados y otros problemas.
Finalmente tienes systemd-analyze dot
herramienta que genera un archivo de puntos que genera una jerarquía completa: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 systemd-analyze que viene por defecto con systemd en archlinux al menos. Creo que también hay algunos proyectos de terceros que se ocupan de esto.
Solución 2:
No estoy seguro de entender correctamente la pregunta, pero hay visualizaciones de árboles disponibles con los siguientes comandos:
sudo systemctl status
Y también:
sudo systemctl list-dependencies
Espero que esto ayude :)
Además, podría ser útil para otros fines crear un árbol de las carpetas de enlaces simbólicos de systemctl:
tree /etc/systemd/system
De hecho, fue muy útil descubrir unidades viejas / 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 debe proporcionarse 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 una manera. Si no puede usar scp
(herramienta ssh) para obtener su archivo en otra computadora, fbi
podría ayudarte :)
sudo systemd-analyze plot > /home/user/startup.svg
fbi /home/user/startup.svg
Trabajó en mis TTY. Simplemente navegue dentro de la imagen con flechas. Hay opciones de zoom, para listar haz fbi -h
.
De nuevo, espero que esto ayude. Está disponible en los repositorios de Archlinux y Ubuntu.
EDICIÓN 2:
fbi
no funciona sobre ssh. Puedes hacer reenvío X como este ssh -Y [email protected]
, pero necesita un servidor X ejecutándose en su servidor remoto.
La mejor apuesta aquí es usar sshfs
. Funciona EXCELENTE en el espacio de usuario, por ejemplo, con nautilus. Hay una pequeña configuración que hacer, mira:
sudo vim /etc/fuse.conf #type a, uncomment the user_allow_other line and ESC :wq
sudo mkdir /mnt/yourmountingdir
sudo chown user:user /mnt/yourmountingdir
sshfs [email protected]:/home/user /mnt/yourmountingdir/ -o allow_other #Asks for host trusting and password
sudo fusermount -u /mnt/yourmountingdir/ #To disconnect and unmount
Solución 3:
Es posible que aún no responda completamente a su pregunta, pero intente con --fuzz
opción
systemd-analyze critical-chain --fuzz 1h
Tenga en cuenta que también puede especificar unidadess para ver su cadena crítica , por lo que no está limitado al multi-user.target
systemd-analyze critical-chain network.target local-fs.target
Espero que esto ayude