Você normalmente definiria o ulimit no usuário que o serviço executa como algo como /etc/security/limits.conf .
Por exemplo, se o serviço da Web estiver sendo executado como www-data , você adicionará uma entrada para www-data a /etc/security/limits.conf definindo os limites relevantes.
Se o processo for executado como root , será mais complicado, pois os limites em /etc/security/limits.conf serão aplicados a todos os processos root .
Um problema com a definição dos limites em /etc/security/limits.conf é que ele depende dos processos que passam pela pilha do PAM.
No caso de serviços e daemons que não fazem isso, então sim, modificar os scripts de serviço relevantes é uma abordagem aceitável. Provavelmente, é necessário fazer isso em uma base por processo e, dependendo da sua distribuição, os scripts de início de serviço geralmente são gerenciados por pacote, o que significa que você obterá conflitos sempre que atualizar.