J'ai un init.d
script qui démarre une application en utilisant start-stop-daemon --chuid SOME_SYSTEM_USER
. Autrement dit, l'application s'exécute sous un autre utilisateur, pas root.
Le problème est que l'application a besoin de paramètres de limite spéciaux (à savoir ulimit -n 64000
), que j'ai définis limits.conf
. Cela fonctionne très bien lorsque je l'exécute directement à partir du shell: su - SOME_SYSTEM_USER
+ démarrer l'application à partir du shell.
Mais lors de l'exécution à start-stop-daemon --chuid
partir de /etc/init.d
, ces limites sont ignorées. Ensuite, l'application ne fonctionne pas, évidemment.
Comment forcer start-stop-daemon
à honorer les ulimit
paramètres?
Debian Squeeze, 2.6.32-5-686 # 1 SMP sam 5 mai 01:33:08 UTC 2012 i686 GNU / Linux
ulimit
paramètre juste avant lastart-stop-daemon
commande. (c'est-à-direulimit -n 64000
) ... pour les ignorants comme moi.Vous pouvez également utiliser la commande «limit» dans le script upstart.
Dans le fichier /etc/init/foo.conf, ajoutez la ligne:
Le premier 64000 est la limite souple, et le second est la limite dure.
Vous pouvez trouver plus d'informations ici: http://upstart.ubuntu.com/cookbook/
la source