Eu tenho um init.d
script que inicia um aplicativo usando start-stop-daemon --chuid SOME_SYSTEM_USER
. Ou seja, o aplicativo é executado sob um usuário diferente, não raiz.
O problema é que o aplicativo precisa de configurações especiais de limite (a saber ulimit -n 64000
), que eu defini limits.conf
. Isso funciona muito bem quando eu o executo diretamente do shell: su - SOME_SYSTEM_USER
+ start app from shell.
Mas quando executados através do start-stop-daemon --chuid
from /etc/init.d
, esses limites são ignorados. Então o aplicativo não funciona, obviamente.
Como forço start-stop-daemon
a respeitar as ulimit
configurações?
Debian Squeeze, 2.6.32-5-686 # 1 SMP Sáb 5 de maio 01:33:08 UTC 2012 i686 GNU / Linux
ulimit
configuração logo antes dostart-stop-daemon
comando. (ieulimit -n 64000
) ... para os ignorantes como eu.Você também pode usar o comando 'limit' no script inicial.
No arquivo /etc/init/foo.conf, adicione a linha:
O primeiro 64000 é o limite flexível e o segundo é o limite rígido.
Você pode encontrar mais informações aqui: http://upstart.ubuntu.com/cookbook/
fonte