Não consigo descobrir como o systemd se integra no Ubuntu 16.04

Não consigo descobrir como o systemd se integra no Ubuntu 16.04

Atualmente estou migrando minha plataforma de desenvolvimento para o Ubuntu Xenial e não consigo descobrir como o Ubuntu está integrando os scripts init.d ao systemd. Por exemplo, veja esta única reinicialização de serviço criada para MariaDB incluída no repositório base.

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

Eu olhei no script e não consigo ver como ele chama o systemd. Então, que tipos de hacks ele está fazendo para integrar "(com systemctl)"?

Isso me traz o que realmente estou tentando fazer é ser capaz de passar argumentos com o systemd.

Então, no total, até que ponto está a integração init do Ubuntu Xenial com o systemd ou é realmente apenas uma série de hacks para compatibilidade com versões anteriores. Eu esperava descobrir que tudo havia sido convertido para esses novos arquivos de serviço.

Responder1

Os init.dscripts fornecem algumas funções bash do pacote LSB

. /lib/lsb/init-functions

Que carregam outros de outros pacotes

# 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

Onde o systemd injeta seu próprio redirecionamento

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

Observação:Encontrado usandostrace /etc/init.d/.. status

informação relacionada