systemctl list-dependencies --reverse/--before/--after/--all

Iniciado por juligarc10, 8 Octubre 2020, 13:07 PM

0 Miembros y 1 Visitante están viendo este tema.

juligarc10

Hola amigos. Me estoy proponiendo deshabilitar algunos servicios que pueden ser prescindibles en mi debian, pero no acabo de comprender bien como funcionan y en que se diferencian los flags --reverse, --before, --after, --all.
No acabo de captar bien los matices que los diferencia, a pesar de haber googleado bastante, no acabo de enterarme. ¿Alguien podría explicarmelo? Gracias, un saludo.

MinusFour

Si usas:

Código (bash) [Seleccionar]

systemctl list-dependencies UNIT


Vas a sacar las dependencias de ese servicio o target. Como yo lo tengo entendido usa Wants o Requires o similares (hay más en el manual) declarados en el archivo de la unidad. Si tu usas --reverse entonces te entregaría quien depende de ese servicio: WantedBy o RequiredBy.

Por ejemplo, si tu tuvieras un archivo que dependiera de el servicio SSH. Podrías poner WantedBy en el archivo de ssh.service o podrías poner Wants en tu servicio. Cuando hicieras --reverse sobre sshd.service deberá salir tu servicio que depende de SSH. En pocas palabras, sin el argumento te muestra las dependencias, con el argumento te muestra los dependientes.

--after te crea las dependencias de acuerdo a los After de esas unidades. Son las unidades que deben ser lanzadas antes de la unidad. Entonces --after te muestra las unidades que deben ser lanzadas antes (confuso yo se). Otras unidades también pueden establecer que unidades deben ser cargadas después. Si una unidad tiene Before, esas unidades puestas ahí necesitan ser cargadas después de esa unidad.

Volviendo al ejemplo de un servicio que dependiera de ssh, digamos que necesitas que el servicio este levantado después del servicio de SSH. Entonces este servicio tuyo necesita tener un After con sshd.service para que esta unidad de se cargue después de sshd.service. De la misma forma podrías agregar en tu unidad de sshd.service que se cargue antes de tu nuevo servicio (usando Before). Todo es relativo. El punto es que --after te muestra las unidades que se cargan antes de la unidad especificada.

--before es lo opuesto, te muestra las unidades que se cargan después de la unidad especificada o las unidades que necesitan que la unidad especificada se cargue antes (otra vez, todo es relativo).

--all simplemente expande las dependencias de los servicios, por defecto solo se expanden los targets.