systemd e arquivos inexistentes * .service: eles são genéricos?

1

systemd unidades são armazenadas em /lib/systemd/system , como:

rsync.service
avahi-daemon.socket
bluetooth.service
cups.service

Quando você usa o seguinte comando:

systemctl enable name

Substitua nome pelo nome da unidade de serviço que você deseja habilitar (por exemplo, apache2 ). Este comando lê a seção [Install] da unidade de serviço selecionada e cria links simbólicos apropriados para o arquivo /lib/systemd/system/name.service no diretório /etc/systemd/system/ e seus subdiretórios.

Mas alguns pacotes não têm *.service arquivos em /lib/systemd/system . Exemplos são mysql e apache2 . Usar systemctl para ativá-los funciona bem:

# systemctl enable apache2
Synchronizing state for apache2.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d apache2 defaults
Executing /usr/sbin/update-rc.d apache2 enable

Ou

# systemctl enable mysql
Synchronizing state for mysql.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d mysql defaults
Executing /usr/sbin/update-rc.d mysql enable

Não obtenho nenhum resultado ao procurar arquivos relacionados a esses serviços:

# find /etc/systemd/system/ -iname "*apache2*"
# find /etc/systemd/system/ -iname "*mysql*"

Como o systemd descobre que o apache2 ou mysql deve ser ativado?

    
por PersianGulf 26.02.2015 / 15:15

1 resposta

1

Synchronizing state for apache2.service with sysvinit using update-rc.d...

E aí está sua resposta, bem aí. O systemd não possui unidades de serviço para esses daemons. Mas existem os scripts System 5 rc em /etc/init.d/ para eles. Portanto, ele está processando esses scripts, indiretamente via update-rc.d , que está lendo seus cabeçalhos LSB, para ativar / desativar os daemons.

    
por 27.02.2015 / 15:24