No puedo entender cómo se integra systemd en Ubuntu 16.04

No puedo entender cómo se integra systemd en Ubuntu 16.04

Actualmente estoy migrando mi plataforma de desarrollo a Ubuntu Xenial y no puedo entender cómo Ubuntu integra los scripts init.d con systemd. Por ejemplo, mire este reinicio de servicio único para MariaDB incluido en el repositorio base.

    root@xenial:/etc/init.d# /etc/init.d/mysql restart
    [ ok ] Restarting mysql (via systemctl): mysql.service.

Miré el script y no veo cómo llama a systemd en absoluto. Entonces, ¿qué tipo de trucos está haciendo para que se integre "(con systemctl)"?

Esto me lleva a que lo que realmente estoy tratando de hacer es poder pasar argumentos con systemd.

Entonces, en total, ¿qué tan avanzada está la integración inicial de systemd en Ubuntu Xenial o es realmente solo una serie de trucos para la compatibilidad con versiones anteriores? Esperaba encontrar que todo se había convertido a estos nuevos archivos de servicio.

Respuesta1

Los init.dscripts obtienen alguna función bash del paquete LSB

. /lib/lsb/init-functions

Que cargan otros de otros paquetes

# Include hooks from other packages in /lib/lsb/init-functions.d
for hook in $(run-parts --lsbsysinit --list /lib/lsb/init-functions.d 2>/dev/null); do
    [ -r $hook ] && . $hook || true
done

Donde systemd inyecta su propia redirección

~$ dpkg -S /lib/lsb/init-functions.d/40-systemd 
systemd: /lib/lsb/init-functions.d/40-systemd

Nota:Encontrado usandostrace /etc/init.d/.. status

información relacionada