J'ai un processus en cours en tant qu'utilisateur gearman et je souhaite le modifier open files
pour éviter d'obtenir cette méchante erreur:
ERREUR 2014-09-12 17: 49: 14.000000 [principal] accepte (Trop de fichiers ouverts) -> libgearman-server / gearmand.cc: 788
Comment puis-je exécuter ulimit en tant qu'autre utilisateur sur Ubuntu et modifier les fichiers ouverts? Je ne me connecte pas actuellement en tant que gearman mais j'ai un accès root. J'ai essayé de faire ça:
su gearman --shell /bin/bash --command "ulimit -n"
comme recommandé ici mais rien de la sortie de get:
$ su gearman --shell /bin/bash --command "ulimit -n"
Password:
$
Lorsque vous exécutez la
ulimit
commande, elle affecte uniquement le processus en cours d'exécutionulimit
(le shell) et tous les sous-processus. Ainsi, lorsque vous exécutezbash --command "ulimit -n"
, cela n'affecte que le nombre de fichiers ouverts pour cette instance de bash, puis les sorties de bash, ainsi les processus futurs ne sont pas affectés.Donc, pour accomplir ce que vous voulez (pour augmenter la limite de fichiers ouverts pour votre processus réel), il est probablement plus logique de modifier
limits.conf
pour augmenter la limite de fichiers ouverts pour votre utilisateur Gearman spécifique.Voir des exemples de limits.conf ailleurs ou ici .
la source
more /proc/<proc_id>/limits
... peut-être la peine d'ajouter à la réponse/etc/security/limits.conf
Essayez d'utiliser
su - <USERNAME> -c ulimit' -Hn'
. Je viens de le tester sur CEntOS 7, et cela fonctionne.la source
<USERNAME>
est incapable de se connecter (a le shell nologin).