GNU/Linux >> Tutoriales Linux >  >> Linux

¿Hay alguna forma de ver el árbol de ejecución de systemd?

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


Linux
  1. ¿Poner el archivo de la unidad Systemd?

  2. ¿Hay alguna manera de hacer que mv cree el directorio al que se moverá si no existe?

  3. ¿Hay alguna manera de 'uniq' por columna?

  4. ¿Hay alguna manera de encontrar el tiempo de ejecución del último comando ejecutado en el shell?

  5. ¿Hay alguna manera de inspeccionar el rpath actual en Linux?

¿Hay alguna forma de determinar el tamaño descomprimido de un archivo .bz2?

¿Hay alguna forma de alterar los colores utilizados en las consolas TTY en Linux?

¿Hay alguna manera de copiar texto en htop?

¿Hay alguna manera de tomar una captura de pantalla en el escritorio KDE presionando solo la tecla PrtSc?

Linux:¿hay alguna forma de identificar la velocidad de su memoria a través del software?

¿Hay alguna manera de cambiar una identificación de volumen de archivos .iso desde la línea de comando?