Almeno su Linux, la maggior parte delle distro sembrano usare pam per l'autenticazione. Un modulo fornito con pam è il modulo limits . Citando dal README per 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.
Di conseguenza, è possibile impostare limiti per utente, per gruppo e predefiniti, in entrambe le categorie (il root lo imposta e il processo non può richiedere valori più alti) e i limiti soft. I limiti soft sono in genere impostati inferiori ai limiti hard e l'app può aumentarla verso l'alto fino a raggiungere il limite hard.
Nel tuo caso, se il processo che desideri aumentare i limiti delle esecuzioni come utente normale, puoi aumentare i limiti per quell'utente o quel gruppo. Ad esempio, ho alcuni lavori mysql cron su alcuni server che richiedono l'apertura di handle di file aggiuntivi, quindi ho impostato questo:
$ cat /etc/security/limits.d/mysql.conf
@mysql soft nofile 100000
@mysql hard nofile 200000
Non è necessario riavviare nulla; quando fai causa a quell'utente, puoi immediatamente vedere che i nuovi limiti diventano effettivi.
Un'altra cosa che puoi fare se ti trovi in un tipico sistema derivato da RedHat è inserire la chiamata ulimit che vuoi nello script / etc / sysconfig / $ SERVICE. Ad esempio, lo script init di apache è chiamato /etc/init.d/httpd e genera il file di configurazione / etc / sysconfig / httpd se viene trovato. Ho trovato più facile gestire facendo questo invece di modificare lo script init stesso perché gli script init vengono aggiornati quando viene aggiornato l'rpm, ma i file sysconfig vengono aggiornati solo se non vengono modificati rispetto all'impostazione predefinita.