Risposte:
Sui kernel più recenti (2.6.32+) su CentOS / RHEL è possibile modificarlo in fase di esecuzione con / proc / <pid> / limits:
cd /proc/7671/
[root@host 7671]# cat limits | grep nice
Max nice priority 0 0
[root@host 7671]# echo -n "Max nice priority=5:6" > limits
[root@host 7671]# cat limits | grep nice
Max nice priority 5 6
Come documentato qui , il prlimit
comando, introdotto con util-linux 2.21, consente di leggere e modificare i limiti dei processi in esecuzione.
Questo è un seguito allo scrivibile /proc/<pid>/limits
, che non è stato integrato nel kernel mainline. Questa soluzione dovrebbe funzionare.
Se non lo hai prlimit(1)
ancora, puoi trovare il codice in una versione minimalista nella prlimit(2)
manpage .
Nella versione più recente di util-linux-ng puoi usare il comando prlimit, per maggiori informazioni leggi questo link /superuser/404239/setting-ulimit-on-a-running-process
Puoi provare ulimit man ulimit
con l'opzione -n, tuttavia la pagina mag non consente alla maggior parte dei sistemi operativi di impedire l'impostazione.
È possibile impostare un limite di descrizioni dei file a livello di sistema utilizzando sysctl -w fs.file-max=N
e rendere persistenti le modifiche dopo l'avvio/etc/sysctl.conf
Tuttavia, suggerirei anche di esaminare il processo per vedere se ha davvero bisogno di avere così tanti file aperti in un determinato momento, e se in effetti è possibile chiudere alcuni file ed essere più efficienti nel processo.
ulimit
non applica le impostazioni ai processi in esecuzione .