Descobre os valores padrão do sysctl? (sem reiniciar)

10

Eu modifiquei o valor de net.core.rmem_max com sysctl e agora gostaria de defini-lo de volta para o valor padrão.

Se eu reiniciar, net.core.rmem_max retornará ao valor padrão (porque não é substituído em /etc/sysctl.conf ), mas posso saber esse valor sem reinicializar?

Idealmente, eu deveria ter corrido sysctl net.core.rmem_max para ler o valor antes de modificá-lo, mas esqueci ...

    
por Nicolas Raoul 23.07.2012 / 09:13

2 respostas

4

Isso não é possível em geral: o kernel não retém os valores originais (pelo menos no Linux isso não acontece, e isso provavelmente é verdade para outras variantes do unix). O valor da configuração é armazenado em uma variável; Quando você altera a configuração, a memória que contém a variável é atualizada de forma irreversível.

Para a maioria das configurações, o valor inicial da variável é uma constante determinada em tempo de compilação e armazenada no binário do kernel. Então, você poderia, em princípio, inspecionar seu binário do kernel para encontrar o valor padrão. Você teria que localizar o símbolo correspondente à configuração em que está interessado e seguir o endereço desse símbolo no binário do kernel. Inicializar seu kernel em uma máquina virtual seria menos trabalhoso.

Para a maioria das configurações, você pode procurar na fonte do kernel - kernel/sysctl.c e outros arquivos. Você verá definições como

    {
            .procname       = "rmem_max",
            .data           = &sysctl_rmem_max,
            …
    },

(em net/core/sysctl_net_core.c ), a partir do qual você pode rastrear a inicialização do < href="http://lxr.linux.no/linux+v3.5/net/core/sock.c#L265"> sysctl_rmem_max variável . Enquanto este é inicializado a partir de uma constante, é preciso ler um pouco do código C para expandir.

    
por 24.07.2012 / 01:57
1

Na minha máquina OpenBSD, o /etc/sysctl.conf lista vários valores de sysctl padrão, mas essa lista não é exaustiva.

Provavelmente, a melhor maneira é ler o código sysctl ou perguntar a um amigo que esteja executando o mesmo sistema operacional por seus valores:)

    
por 23.07.2012 / 12:58

Tags