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

2

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 com o systemd. Por exemplo, olhe para este único serviço de reinicialização para o MariaDB incluído 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 é chamado systemd. Então, que tipos de hacks estão fazendo para integrá-lo "(com systemctl)"?

Isso me traz o que eu estou realmente tentando fazer é passar um argumento com o systemd.

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

    
por user114319 05.05.2016 / 04:07

1 resposta

2

Os scripts init.d fornecem alguma função 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

Nota: encontrado usando strace /etc/init.d/.. status

    
por user.dz 10.12.2016 / 00:31