Implicações de um serviço que não entra em conflito com shutdown.target

Implicações de um serviço que não entra em conflito com shutdown.target

<DR>
Estou ajustando um servidor de arquivos somente NFSv4 baseado no atual Debian 10 Buster e no kernel ntfsd; sistemad v241. O nfs-kernel-serverscript systemd do pacote da distribuição me parece um pouco estranho. Alguns arquivos de definição de serviço, incluindo o nfs-server.servicepróprio, vêm com a configuração DefaultDependencies=no, de forma que a unidade não obtenha automaticamente a Conflicts=shutdown.targetdependência, de acordo com systemd.service(5):

[Com DefaultDependencies=yes] [unidades de serviço] terão dependências [...] do tipo Conflicts=e Before=em shutdown.target. Isto garante que as unidades de serviço normais [...] sejam terminadas corretamente antes do desligamento do sistema.

Nenhum deles é fornecido explicitamente, ao contrário do que vi em outros pacotes do próprio systemd. O comando

systemctl show nfs-server.service | egrep '^(Want|Requ|Bind|Bound|Before|After|Confl)'

confirma que isso é de fato verdade: não existem tais dependências. O manual continua,

Somente serviços envolvidos com inicialização antecipada ou desligamento tardio do sistema devem desabilitar esta opção.

o que o servidor NFS exatamente não é, pois ele não pode começar a servir até que a rede esteja totalmente ativa e provavelmente deve parar de aceitar novas solicitações e evitar a carga assim que o desligamento do sistema começar.

Este não é um único serviço do pacote que possui configuração semelhante, mas é o que mais me preocupa. Estou lançando VMs de propósito único em uma configuração de nuvem, e um servidor de arquivos pode ter uma quantidade absurda de RAM (64-128G), tudo cheio até o pescoço com o cache do sistema de arquivos, como mostra o htop(1). E como esta é uma máquina de armazenamento de arquivos, não tenho palavras para expressar o quanto desejo que o servidor, segundo o manual, “encerre de forma limpa antes do desligamento do sistema”, especialmente considerando que troco um pouco de confiabilidade por desempenho com as opções de montagem ext4 do sistema de arquivos exportado data=writebacke nobarrier¹.
</DR>

Então meupergunta resumida em uma frase é:

O que acontece com um serviço systemd que não possui Conflicts=dependências Before=de shutdown.targetquando o sistema de fato é desligado?


¹ Esta é uma compensação de engenharia bem deliberada, avaliada com base no SLA do provedor de nuvem e nos resultados de uma bateria de testes de desempenho, e é totalmente tangencial à essência da questão.

informação relacionada