No Linux, os limites de recursos podem ser definidos em vários locais com base no tipo de requisito.
-
/etc/security/limits.conf
file. -
/etc/sysctl.conf
file. -
ulimit
command
/etc/security/limits.conf
faz parte de pam_limits e, portanto, os limites definidos nesse arquivo são lidos pelo módulo pam_limits durante as sessões de login . A sessão de login pode ser por ssh
ou terminal
. E pam_limits não afetará os processos do daemon como mencionado aqui .
/etc/sysctl.conf
é uma configuração global de todo o sistema, não podemos definir aqui configurações específicas do usuário. Define a quantidade máxima de recursos que podem ser usados por todos os usuários / processos colocados juntos.
ulimit
é usado para definir os limites do shell. E assim, quando um limite é definido com ulimit
em um shell, o processo que é gerado a partir do shell também obtém esse valor devido à regra de que o child process
herda as propriedades parent processes
.
E, para o seu caso, como redis
é iniciado como parte de init
, nenhuma das opções acima ajudará você diretamente. A maneira correta de fazer isso é que você precisa usar o comando ulimit
para definir o novo valor no próprio script de inicialização. Como abaixo no script,
ulimit -n 100000
if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid redis:redis --exec $DAEMON -- $DAEMON_ARGS.
Já existe um bug arquivado na lista de desejos para adicionar o recurso ulimit
%código%
.
Verifique também na configuração de start-stop-daemon
se houver alguma maneira de fornecer limites a ela.