sysctl.conf não está sendo executado na inicialização

4

Em que ponto o sysctl.conf deve ser lido durante a inicialização e por que ele não está sendo executado? Eu tenho as seguintes configurações que não estão sendo aplicadas quando eu reinicio:

net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-filter-pppoe-tagged = 0
net.bridge.bridge-nf-filter-vlan-tagged = 0

fs.nfs.nlm_udpport = 32768
fs.nfs.nlm_tcpport = 32768

A primeira seção é necessária para o KVM bridging, e a segunda é executar o gerenciador de bloqueio do NFS em uma porta conhecida. No entanto, após a inicialização, esses valores não entraram em vigor. Se eu executar sysctl -p , eles executam.

Isso não seria um problema enorme, exceto que não consigo descobrir como reiniciar o gerenciador de bloqueio sem reinicializar. Eu realmente gostaria de saber por que o sysctl.conf não está funcionando na inicialização, mas eu gostaria apenas de poder reiniciar o gerenciador de bloqueio.

Isto está no servidor Ubuntu 10.04.2, kernel 2.6.32-31-server. Eu sei que alguns daemons verificam as permissões em seus arquivos de configuração e se recusam a trabalhar se eles forem muito permissivos, mas o sysctl.conf é o 644 root: root, o qual eu tenho certeza que é o padrão.

    
por Brian 16.05.2011 / 17:03

3 respostas

5

Dê uma olhada em Alguns sysctl's são ignorados na inicialização . Em suma, as configurações são aplicadas cedo, antes que alguns módulos do kernel sejam carregados.

    
por 13.11.2011 / 16:56
1

No Ubuntu, ele será carregado como parte do daemon upstart executando o arquivo /etc/init/procps.conf.

Verifique se ele está lá e se você não o desativou.

    
por 16.05.2011 / 17:21
0

Se for algo parecido com o Debian, o sysctl on-boot é executado por /etc/init.d/procps . Para comparação, meu padrão é assim.

# /etc/init.d/procps: Set kernel variables from /etc/sysctl.conf
# Description:  Loads kernel parameters that are specified in /etc/sysctl.conf
which sysctl > /dev/null || exit 0
                   for file in /etc/sysctl.conf /etc/sysctl.d/*.conf ; do
                                   sysctl $quiet -p "$file"

Pode valer a pena verificar se está lá, e se o (s) seu (s) symlink (s) init (s) estão intactos. (o meu está em rcS.d apenas). Não é um arquivo de configuração sensível, portanto, as permissões do 644 não devem ser um problema.

    
por 16.05.2011 / 17:18