¿Cómo puedo predecir el orden de apagado de systemd?

9

¿Hay alguna manera de systemddecirme el orden aproximado en que cerrará los servicios cuando apague todo el sistema de manera limpia? Dado systemdque cerrará las cosas en paralelo, agradezco que no haya forma de saber el orden exacto, pero aún sería muy útil saber qué restricciones systemdimpondrán en la secuencia de apagado, preferiblemente en algún tipo de visualización que sea fácil de entender.

La motivación es que para el desarrollo y la depuración de archivos de servicio, sería mucho más conveniente obtener esta lista predicha por adelantado, en lugar de tener que hacer un apagado real y luego reiniciar e inspeccionar los registros cada vez que quiera determinar qué impacto tendrá un cambio en un archivo de unidad de servicio o algún otro aspecto de la configuración de systemd en la orden de apagado.

Esperaba que algo así

systemctl list-dependencies --before shutdown.service

haría el trabajo, pero solo emite:

shutdown.service
Adam Spires
fuente

Respuestas:

2

Lo siguiente podría ayudarlo:

systemctl list-dependencies --before shutdown.target

Saludos,

Mohamed Salhi
fuente
3
Bueno, gracias por señalar mi estúpido error que no es shutdown.targetasí shutdown.service. Sin embargo, esto todavía no me da la lista ordenada que solicité, sino que me da una lista muy corta, o incluso una lista vacía en algunos sistemas.
Adam Spires
Systemd es opaco a propósito, desafortunadamente. Para el estilo sysvinit de la vieja escuela, uno probablemente podría agregar el registro a los archivos de inicio y registrar los procesos iniciados en un archivo con una marca de tiempo, al menos eso es lo que se me ocurrió primero.
shevy
1
@AdamSpiers @Mohamed Salhi básicamente, "antes" significa "comienza antes". Esto significa que el comando que desea es systemctl list-dependencies --after shutdown.target... al menos eso encontrará todo lo que el primer comando no encuentra. También es confuso porque shutdown.targetestá comenzando , pero todas las demás unidades se están deteniendo , y en este caso no importa si tiene un pedido "antes" o "después"; la detención se realiza antes del inicio en ambos casos.
sourcejedi
1

El orden de apagado suele ser el reverso del orden de inicio.

Dicho esto, a todos los demonios se les envía una señal de apagado, y tomará diferentes cantidades de tiempo para apagarse y salir.

Dejando a systemd simple, no creo que sea factible predecir útilmente qué servicios saldrán en qué secuencia. Además, las dependencias controlarán algunas secuencias.

Jonesome restablecer monica
fuente
1
Correcto, era consciente de eso, debido a la paralelización. Sin embargo, no necesito el orden exacto, solo qué ordenamientos se aplican y qué cosas pueden ejecutarse en paralelo. Actualizaré mi pregunta para aclarar esto. Además, ¿puedes calificar "generalmente"? ¿Cuándo no sería al revés?
Adam Spires