Na verdade, eu escrevi um livro de receitas do chef privado que é usado para definir ulimit para nós e funciona muito bem. Para o Ubuntu nós encontramos o seguinte truque é necessário se você quiser uma configuração ulimit global:
Adicione o seguinte à sua sessão comum:
session required pam_limits.so
e no limit.conf você deve ter o seguinte:
* soft nofile 64000
* hard nofile 65000
root soft nofile 64000
root hard nofile 65000
A parte raiz é importante, pois parece que, sem isso, algum script de inicialização não funcionará corretamente. Então, temos um livro de receitas do chef que define o seguinte e funciona muito bem.
Outra opção que usamos para o Tomcat foi implantar o Tomcat e, em seguida, substituir o script de inicialização por um personalizado para o qual definiríamos o ulimit e reiniciar o tomcat. Isso funciona muito bem, mas é um pouco mais hacky que o primeiro.
Espero que isso ajude, e talvez um dia eu possa abrir o livro de receitas que temos internamente, já que é simples, mas pode ser útil para outras pessoas como você.