O limite definido com sysctl
é uma configuração do sistema que se aplica a todo o sistema. Não é um limite que se aplica a processos individuais.
Cada processo pode ter mais de N arquivos abertos, onde N é o limite de NOFILE
do processo, e pode alterar seu próprio limite flexível para não mais do que o limite máximo. Somente processos em execução como root podem aumentar seu limite rígido. Os processos herdam os limites de seus pais.
A maneira de alterar o limite de um único serviço (que é o que você deve fazer) depende do seu sistema init.
- Para SysVinit (CentOS ≤6): edite o script de inicialização do serviço (normalmente localizado em
/etc/rc.d/init.d
) para chamarulimit
antes de executar o daemon e reinicie o serviço. -
Para Systemd (CentOS ≥7): edite o arquivo de unidade do serviço
/etc/systemd/system/my_game_server.service
e adicione uma diretivaLimitNOFILE=16384
Em seguida, execute
systemctl daemon-reload
para recarregar a configuração e reinicie o serviço.