Sur Linux au moins, la plupart des distributions semblent utiliser pam pour l'authentification. Un module fourni avec pam est le module des limites . Citant du README pour pam_limits:
The pam_limits PAM module sets limits on the system resources that can be obtained in a user-session. Users of uid=0 are affected by this limits, too.
Par conséquent, vous pouvez définir des limites par utilisateur, par groupe et par défaut, dans les deux catégories, les limites strictes (root définit cela et le processus ne peut pas demander plus) et les limites souples. Les limites souples sont généralement inférieures aux limites strictes et l'application peut l'augmenter vers le haut jusqu'à ce qu'elle atteigne la limite fixe.
Dans votre cas, si le processus que vous souhaitez augmenter les limites des exécutions en tant qu'utilisateur normal, vous pouvez augmenter les limites pour cet utilisateur ou ce groupe. À titre d'exemple, j'ai des tâches cron mysql sur certains serveurs qui nécessitent l'ouverture de descripteurs de fichiers supplémentaires, j'ai donc défini ceci:
$ cat /etc/security/limits.d/mysql.conf
@mysql soft nofile 100000
@mysql hard nofile 200000
Il n'y a rien à redémarrer; lorsque vous su à cet utilisateur, vous pouvez immédiatement voir que les nouvelles limites prennent effet.
Une autre chose que vous pouvez faire si vous êtes sur un système dérivé de RedHat typique est de placer l'appel ulimit souhaité dans le script / etc / sysconfig / $ SERVICE. Par exemple, le script init d'Apache est nommé /etc/init.d/httpd, et il source le fichier de configuration / etc / sysconfig / httpd s'il est trouvé. J'ai trouvé plus facile à gérer en faisant cela au lieu de modifier le script init lui-même car les scripts init sont mis à jour lorsque le rpm est mis à niveau, mais les fichiers sysconfig ne sont mis à jour que s'ils ne sont pas modifiés par défaut.