Em vez disso, sugiro a seguinte solução alternativa: atrasar a inicialização do mlocate-updatedb.service por alguns minutos (por exemplo, 10 minutos) para que, se precisar ser executado na inicialização do sistema, ele seja iniciado depois de algum tempo.
O seguinte fará isso, e não será substituído se o pacote mlocate for atualizado:
mkdir /etc/systemd/system/mlocate-updatedb.service.d
cat <<EOF > /etc/systemd/system/mlocate-updatedb.service.d/mlocate-updatedb.conf
[Service]
ExecStart=
ExecStart=/bin/sleep 10m
ExecStart=/usr/libexec/mlocate-run-updatedb
EOF
Isso tem a vantagem de evitar boot lento (não testado ainda, mas deve fazê-lo, e também atualizará o banco de dados de localização todos os dias.
Para o Fedora 23 com systemd-222-14.fc23.x86_64 (e acima):
Os timers systemd agora têm uma nova opção: RandomizedDelaySec, que parece fornecer a solução para este problema. Portanto, adicionar uma linha como essa também deve corrigir o problema:
RandomizedDelaySec = 30m
(Observe que o atraso ainda é aleatório, então às vezes pode ser muito pequeno e causar um arranque lento.)
Atualização: Uma atualização é enviada ao repositório de testes do Fedora, que parece ter mudado o tipo de serviço de oneshot
para simple
. Isso fará com que o systemd não espere por updatedb
termination antes de continuar. Isso resolve um pouco o problema também. No entanto, sugiro ainda usar um sleep
ou RandomizedDelaySec
para que ele não seja executado durante a inicialização; porque seu IO pesado ainda desaceleraria o processo de inicialização.